/*! For license information please see smartplayer.js.LICENSE.txt */ (()=>{var i={9528(e){function o(e,t,i,r,s,a){return g((t=g(g(t,e),g(r,a)))<>>32-s,i)}function c(e,t,i,r,s,a,n){return o(t&i|~t&r,e,t,s,a,n)}function u(e,t,i,r,s,a,n){return o(t&r|i&~r,e,t,s,a,n)}function p(e,t,i,r,s,a,n){return o(t^i^r,e,t,s,a,n)}function f(e,t,i,r,s,a,n){return o(i^(t|~r),e,t,s,a,n)}function g(e,t){var i=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(i>>16)<<16|65535&i}e.exports=function(e){return(e=>{for(var t,i="0123456789ABCDEF",r="",s=0;s>>4&15)+i.charAt(15&t);return r})((e=>{for(var t="",i=0;i<32*e.length;i+=8)t+=String.fromCharCode(e[i>>5]>>>i%32&255);return t})(((e,t)=>{e[t>>5]|=128<>>9<<4)]=t;for(var i=1732584193,r=-271733879,s=-1732584194,a=271733878,n=0;n{for(var t=Array(e.length>>2),i=0;i>5]|=(255&e.charCodeAt(i/8))<{this.off(t,r),i.apply(this,e)};return r.fn=i,this.on(t,r),this},t.prototype.off=function(e,t){if(void 0===e&&void 0===t)this._callbacks.clear();else if(void 0===t)this._callbacks.delete(e);else{var i=this._callbacks.get(e);if(i){for(var[r,s]of i.entries())if(s===t||s.fn===t){i.splice(r,1);break}0===i.length?this._callbacks.delete(e):this._callbacks.set(e,i)}}return this},t.prototype.emit=function(e,...t){var i,e=this._callbacks.get(e);if(e)for(i of[...e])i.apply(this,t);return this},t.prototype.listeners=function(e){return this._callbacks.get(e)??[]},t.prototype.listenerCount=function(e){if(e)return this.listeners(e).length;let t=0;for(var i of this._callbacks.values())t+=i.length;return t},t.prototype.hasListeners=function(e){return 0e.$$typeof===i)(t));var t}var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?h(Array.isArray(e)?[]:{},e,t):e}function a(e,t,i){return e.concat(t).map(function(e){return o(e,i)})}function t(e){return Object.keys(e).concat((t=e,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]));var t}function l(e,t){try{return t in e}catch(e){return!1}}function n(r,s,a){var n={};return a.isMergeableObject(r)&&t(r).forEach(function(e){n[e]=o(r[e],a)}),t(s).forEach(function(e){var t,i;(!l(t=r,i=e)||Object.hasOwnProperty.call(t,i)&&Object.propertyIsEnumerable.call(t,i))&&(l(r,e)&&a.isMergeableObject(s[e])?n[e]=(t=e,((i=a).customMerge&&"function"==typeof(i=i.customMerge(t))?i:h)(r[e],s[e],a)):n[e]=o(s[e],a))}),n}function h(e,t,i){(i=i||{}).arrayMerge=i.arrayMerge||a,i.isMergeableObject=i.isMergeableObject||s,i.cloneUnlessOtherwiseSpecified=o;var r=Array.isArray(t);return r===Array.isArray(e)?r?i.arrayMerge(e,t,i):n(e,t,i):o(t,i)}h.all=function(e,i){if(Array.isArray(e))return e.reduce(function(e,t){return h(e,t,i)},{});throw new Error("first argument should be an array")},e.exports=h},86(e,t,i){function r(t){var i=this.constructor;return this.then(function(e){return i.resolve(t()).then(function(){return e})},function(e){return i.resolve(t()).then(function(){return i.reject(e)})})}function s(i){return new this(function(s,e){if(!i||void 0===i.length)return e(new TypeError(typeof i+" "+i+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var a=Array.prototype.slice.call(i);if(0===a.length)return s([]);var n=a.length;for(var t=0;t{if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==i.g)return i.g;throw new Error("unable to locate global object")})()).Promise?v.Promise=h:(v.Promise.prototype.finally||(v.Promise.prototype.finally=r),v.Promise.allSettled||(v.Promise.allSettled=s),v.Promise.any||(v.Promise.any=a))},4948(){var e,t;e=window,t=performance,e._plt=e._plt||(t&&t.timeOrigin?t.timeOrigin+t.now():Date.now())},641(e,t,i){i(8372);i=i(9316);e.exports=i("Array","find")},3305(e,t,i){i(2851),i(4211);i=i(7344);e.exports=i.Array.from},4624(e,t,i){i(9690);i=i(9316);e.exports=i("Array","includes")},8526(e,t,i){i(6993),i(1126),i(9005),i(3132),i(5438),i(6630),i(2851);i=i(7344);e.exports=i.Map},7446(e,t,i){i(666);i=i(7344);e.exports=i.Object.assign},7302(e,t,i){i(8850);i=i(7344);e.exports=i.Object.hasOwn},3429(e,t,i){i(8184),i(6993),i(6630),i(6001),i(48),i(5077),i(5258),i(8121),i(5420),i(2851);i=i(7344);e.exports=i.Promise},2348(e,t,i){i(6993),i(6630),i(1972),i(9833),i(6967),i(1482),i(1207),i(4160),i(1511),i(9675),i(2851);i=i(7344);e.exports=i.Set},2152(e,t,i){i(6667),i(6630),i(5302),i(832),i(7335),i(2377),i(2597),i(3962),i(7123),i(9488),i(4101),i(4411),i(3356),i(7494),i(5814),i(220),i(2795),i(7680),i(9691),i(6170),i(2862),i(7375);i=i(7344);e.exports=i.Symbol},2481(e,t,i){var r=i(8252),s=i(1958),a=TypeError;e.exports=function(e){if(r(e))return e;throw new a(s(e)+" is not a function")}},3937(e,t,i){var r=i(8562),s=i(1958),a=TypeError;e.exports=function(e){if(r(e))return e;throw new a(s(e)+" is not a constructor")}},6601(e,t,i){var r=i(9048),s=String,a=TypeError;e.exports=function(e){if(r(e))return e;throw new a("Can't set "+s(e)+" as a prototype")}},1865(e,t,i){var r=i(1787).has;e.exports=function(e){return r(e),e}},7938(e,t,i){var r=i(2666),s=i(3369),i=i(1250).f,a=r("unscopables"),n=Array.prototype;void 0===n[a]&&i(n,a,{configurable:!0,value:s(null)}),e.exports=function(e){n[a][e]=!0}},462(e,t,i){var r=i(8130),s=TypeError;e.exports=function(e,t){if(r(t,e))return e;throw new s("Incorrect invocation")}},3162(e,t,i){var r=i(8271),s=String,a=TypeError;e.exports=function(e){if(r(e))return e;throw new a(s(e)+" is not an object")}},2365(e,t,i){i=i(8930);e.exports=i(function(){var e;"function"==typeof ArrayBuffer&&(e=new ArrayBuffer(8),Object.isExtensible(e))&&Object.defineProperty(e,"a",{value:8})})},5419(e,t,i){var p=i(4445),f=i(3176),g=i(1724),m=i(9836),v=i(450),y=i(8562),b=i(6013),E=i(721),T=i(592),w=i(4750),S=i(8258),k=i(1380),_=Array;e.exports=function(e){var t,i,r,s,a,n,o=y(this),l=arguments.length,h=1{try{return e[t]}catch(e){}})(e=o(e),n))?t:l?a(e):"Object"===(t=a(e))&&s(e.callee)?"Arguments":t}},1391(e,t,i){var h=i(3369),d=i(7893),c=i(2976),u=i(4445),p=i(462),f=i(3022),g=i(6841),n=i(3233),o=i(4992),l=i(8044),m=i(7101),v=i(1430).fastKey,i=i(4206),y=i.set,b=i.getterFor;e.exports={getConstructor:function(e,i,r,s){function a(e,t,i){var r,s=l(e),a=n(e,t);return a?a.value=i:(s.last=a={index:r=v(t,!0),key:t,value:i,previous:t=s.last,next:null,removed:!1},s.first||(s.first=a),t&&(t.next=a),m?s.size++:e.size++,"F"!==r&&(s.index[r]=a)),e}function n(e,t){var i,e=l(e),r=v(t);if("F"!==r)return e.index[r];for(i=e.first;i;i=i.next)if(i.key===t)return i}var e=e(function(e,t){p(e,o),y(e,{type:i,index:h(null),first:null,last:null,size:0}),m||(e.size=0),f(t)||g(t,e[s],{that:e,AS_ENTRIES:r})}),o=e.prototype,l=b(i);return c(o,{clear:function(){for(var e=l(this),t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=null),t=t.next;e.first=e.last=null,e.index=h(null),m?e.size=0:this.size=0},delete:function(e){var t,i,r=l(this),e=n(this,e);return e&&(t=e.next,i=e.previous,delete r.index[e.index],e.removed=!0,i&&(i.next=t),t&&(t.previous=i),r.first===e&&(r.first=t),r.last===e&&(r.last=i),m?r.size--:this.size--),!!e},forEach:function(e){for(var t,i=l(this),r=u(e,1",p="<",f="prototype",g="script",m=i("IE_PROTO"),v=function(e){return p+g+u+e+p+"/"+g+u},y=function(){try{a=new ActiveXObject("htmlfile")}catch(e){}y="undefined"==typeof document||document.domain&&a?s(a):(e=c("iframe"),t="java"+g+":",e.style.display="none",d.appendChild(e),e.src=String(t),(t=e.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F);for(var e,t,i=l.length;i--;)delete y[f][l[i]];return y()};h[m]=!0,e.exports=Object.create||function(e,t){var i;return null!==e?(r[f]=n(e),i=new r,r[f]=null,i[m]=e):i=y(),void 0===t?i:o.f(i,t)}},5422(e,t,i){var r=i(7101),s=i(3667),o=i(1250),l=i(3162),h=i(2364),d=i(7185);t.f=r&&!s?Object.defineProperties:function(e,t){l(e);for(var i,r=h(t),s=d(t),a=s.length,n=0;ns;)!n(r,i=t[s++])||~l(a,i)||d(a,i);return a}},7185(e,t,i){var r=i(6067),s=i(7658);e.exports=Object.keys||function(e){return r(e,s)}},6640(e,t){var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,s=r&&!i.call({1:2},1);t.f=s?function(e){e=r(this,e);return!!e&&e.enumerable}:i},3630(e,t,i){var s=i(3809),a=i(8271),n=i(2341),o=i(6601);e.exports=Object.setPrototypeOf||("__proto__"in{}?(()=>{var i,r=!1,e={};try{(i=s(Object.prototype,"__proto__","set"))(e,[]),r=e instanceof Array}catch(e){}return function(e,t){return n(e),o(t),a(e)&&(r?i(e,t):e.__proto__=t),e}})():void 0)},1300(e,t,i){var r=i(1153),s=i(110);e.exports=r?{}.toString:function(){return"[object "+s(this)+"]"}},5519(e,t,i){var s=i(3176),a=i(8252),n=i(8271),o=TypeError;e.exports=function(e,t){var i,r;if("string"===t&&a(i=e.toString)&&!n(r=s(i,e)))return r;if(a(i=e.valueOf)&&!n(r=s(i,e)))return r;if("string"!==t&&a(i=e.toString)&&!n(r=s(i,e)))return r;throw new o("Can't convert object to primitive value")}},5456(e,t,i){var r=i(3220),s=i(2289),a=i(7469),n=i(4540),o=i(3162),l=s([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=a.f(o(e)),i=n.f;return i?l(t,i(e)):t}},6801(e,t,i){var r=i(2289),n=i(9522),o=SyntaxError,l=parseInt,h=String.fromCharCode,d=r("".charAt),c=r("".slice),u=r(/./.exec),p={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":"\t"},f=/^[\da-f]{4}$/i,g=/^[\u0000-\u001F]$/;e.exports=function(e,t){for(var i=!0,r="";ti.size?l(i.getIterator(),function(e){c(t,e)&&d(r,e)}):o(t,function(e){i.includes(e)&&d(r,e)}),r}},8922(e,t,i){var s=i(1865),a=i(1787).has,n=i(1285),o=i(2886),l=i(2472),h=i(3736),d=i(1380);e.exports=function(e){var t,i=s(this),r=o(e);return n(i)<=r.size?!1!==l(i,function(e){if(r.includes(e))return!1},!0):(t=r.getIterator(),!1!==h(t,function(e){if(a(i,e))return d(t.iterator,"normal",!1)}))}},5369(e,t,i){var r=i(1865),s=i(1285),a=i(2472),n=i(2886);e.exports=function(e){var t=r(this),i=n(e);return!(s(t)>i.size)&&!1!==a(t,function(e){if(!i.includes(e))return!1},!0)}},632(e,t,i){var r=i(1865),s=i(1787).has,a=i(1285),n=i(2886),o=i(3736),l=i(1380);e.exports=function(e){var t,i=r(this),e=n(e);return!(a(i)=t.length)return e.target=null,h(void 0,!0);switch(e.kind){case"keys":return h(i,!1);case"values":return h(t[i],!1)}return h([i,t[i]],!1)},"values"),a.Arguments=a.Array);if(s("keys"),s("values"),s("entries"),!d&&i&&"values"!==n.name)try{o(n,"name",{value:"values"})}catch(e){}},7911(F,N,e){function u(e,t,i){var r=w(i,t-1),i=w(i,t+1);return T(I,e)&&!T(P,i)||T(P,e)&&!T(I,r)?"\\u"+A(S(e,0),16):e}var t=e(7725),i=e(3220),s=e(5990),p=e(3176),r=e(2289),a=e(8930),o=e(8431),f=e(8252),g=e(4635),n=e(8944),l=e(7409),h=e(8282),d=e(4497),m=e(6801),c=e(2161),v=e(1520),y=e(7606),b=String,E=i("JSON","stringify"),T=r(/./.exec),w=r("".charAt),S=r("".charCodeAt),k=r("".replace),_=r("".slice),L=r([].push),A=r(1.1.toString),R=/[\uD800-\uDFFF]/g,I=/^[\uD800-\uDBFF]$/,P=/^[\uDC00-\uDFFF]$/,C=c(),x=C.length,e=!v||a(function(){var e=i("Symbol")("stringify detection");return"[null]"!==E([e])||"{}"!==E({a:e})||"{}"!==E(Object(e))}),D=a(function(){return'"\\udf06\\ud834"'!==E("\udf06\ud834")||'"\\udead"'!==E("\udead")}),O=e?function(e,t){var i=d(arguments),r=M(t);if(f(r)||void 0!==e&&!n(e))return i[1]=function(e,t){if(f(r)&&(t=p(r,this,b(e),t)),!n(t))return t},s(E,null,i)}:E,M=function(e){if(f(e))return e;if(o(e)){for(var t=e.length,r=[],i=0;i=t.length?o(void 0,!0):(t=r(t,i),e.index+=t.length,o(t,!1))})},832(e,t,i){var r=i(3405),s=i(5852),a=i(1250).f,i=i(6056).f,r=r.Symbol;s("asyncDispose"),r&&(s=i(r,"asyncDispose")).enumerable&&s.configurable&&s.writable&&a(r,"asyncDispose",{value:s.value,enumerable:!1,configurable:!1,writable:!1})},7335(e,t,i){i(5852)("asyncIterator")},3712(F,N,e){function a(e,t,i){var r=oe(I,t);return r&&delete I[t],C(e,t,i),r&&e!==I&&C(I,t,r),e}function t(e,t){var i=x[e]=E(P);return re(i,{type:R,tag:e,description:t}),p||(i.description=t),i}function r(e,t,i){return e===I&&r(D,t,i),m(e),t=y(t),m(i),(g(x,t)?(("enumerable"in i?!i.enumerable:!g(e,t)||g(e,A)&&e[A][t])?(g(e,A)||C(e,A,b(1,E(null))),e[A][t]=!0):(g(e,A)&&e[A][t]&&(e[A][t]=!1),i=E(i,{enumerable:b(0,!1)})),M):C)(e,t,i)}function i(t,e){m(t);var i=v(e),e=T(i).concat(l(i));return L(e,function(e){p&&!c(s,i,e)||r(t,e,i[e])}),t}function s(e){var e=y(e),t=c(he,this,e);return!(this===I&&g(x,e)&&!g(D,e))&&(!(t||!g(this,e)||!g(x,e)||g(this,A)&&this[A][e])||t)}function n(e,t){var i,e=v(e),t=y(t);if(e!==I||!g(x,t)||g(D,t))return!(i=oe(e,t))||!g(x,t)||g(e,A)&&e[A][t]||(i.enumerable=!0),i}function o(e){var e=le(v(e)),t=[];return L(e,function(e){g(x,e)||g(X,e)||de(t,e)}),t}function l(e){var t=e===I,e=le(t?D:v(e)),i=[];return L(e,function(e){!g(x,e)||t&&!g(I,e)||de(i,x[e])}),i}var h=e(7725),d=e(3405),c=e(3176),u=e(2289),U=e(4214),p=e(7101),f=e(1520),$=e(8930),g=e(9522),B=e(8130),m=e(3162),v=e(2364),y=e(3704),V=e(8282),b=e(9299),E=e(3369),T=e(7185),j=e(7469),G=e(197),H=e(4540),z=e(6056),K=e(1250),W=e(5422),Y=e(6640),w=e(3589),q=e(7893),S=e(8762),k=e(4040),X=e(4036),Q=e(2161),Z=e(2666),J=e(8826),ee=e(5852),te=e(9221),ie=e(9290),_=e(4206),L=e(8136).forEach,A=k("hidden"),R="Symbol",e="prototype",re=_.set,se=_.getterFor(R),I=Object[e],k=d.Symbol,P=k&&k[e],ae=d.RangeError,ne=d.TypeError,_=d.QObject,oe=z.f,C=K.f,le=G.f,he=Y.f,de=u([].push),x=S("symbols"),D=S("op-symbols"),u=S("wks"),O=!_||!_[e]||!_[e].findChild,M=p&&$(function(){return 7!==E(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?a:C;f||(w(P=(k=function(){if(B(P,this))throw new ne("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?V(arguments[0]):void 0,r=Q(e),s=function(t){var i=void 0===this?d:this,t=(i===I&&c(s,D,t),g(i,A)&&g(i[A],r)&&(i[A][r]=!1),b(1,t));try{M(i,r,t)}catch(e){if(!(e instanceof ae))throw e;a(i,r,t)}};return p&&O&&M(I,r,{configurable:!0,set:s}),t(r,e)})[e],"toString",function(){return se(this).tag}),w(k,"withoutSetter",function(e){return t(Q(e),e)}),Y.f=s,K.f=r,W.f=i,z.f=n,j.f=G.f=o,H.f=l,J.f=function(e){return t(Z(e),e)},p&&(q(P,"description",{configurable:!0,get:function(){return se(this).description}}),U||w(I,"propertyIsEnumerable",s,{unsafe:!0}))),h({global:!0,constructor:!0,wrap:!0,forced:!f,sham:!f},{Symbol:k}),L(T(u),function(e){ee(e)}),h({target:R,stat:!0,forced:!f},{useSetter:function(){O=!0},useSimple:function(){O=!1}}),h({target:"Object",stat:!0,forced:!f,sham:!p},{create:function(e,t){return void 0===t?E(e):i(E(e),t)},defineProperty:r,defineProperties:i,getOwnPropertyDescriptor:n}),h({target:"Object",stat:!0,forced:!f},{getOwnPropertyNames:o}),te(),ie(k,R),X[A]=!0},2377(e,t,i){var r,s,a,n,o,l,h,d,c=i(7725),u=i(7101),p=i(3405),f=i(3176),g=i(2289),m=i(9522),v=i(8252),y=i(8130),b=i(8282),E=i(7893),i=i(4993),T=p.Symbol,w=T&&T.prototype;!u||!v(T)||"description"in w&&void 0===T().description||(r={},i(p=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:b(arguments[0]),t=y(w,this)?new T(e):void 0===e?T():T(e);return""===e&&(r[t]=!0),t},T),s=p.for,p.for=function(e){var e=b(e),t=f(s,this,e);return""===e&&(r[t]=!0),t},(p.prototype=w).constructor=p,a="Symbol(description detection)"===String(T("description detection")),n=g(w.valueOf),o=g(w.toString),l=/^Symbol\((.*)\)[^)]+$/,h=g("".replace),d=g("".slice),E(w,"description",{configurable:!0,get:function(){var e=n(this);return m(r,e)?"":(e=o(e),""===(e=a?d(e,7,-1):h(e,l,"$1"))?void 0:e)}}),c({global:!0,constructor:!0,forced:!0},{Symbol:p}))},2597(e,t,i){var r=i(3405),s=i(5852),a=i(1250).f,i=i(6056).f,r=r.Symbol;s("dispose"),r&&(s=i(r,"dispose")).enumerable&&s.configurable&&s.writable&&a(r,"dispose",{value:s.value,enumerable:!1,configurable:!1,writable:!1})},5203(e,t,i){var r=i(7725),s=i(3220),a=i(9522),n=i(8282),o=i(8762),i=i(8433),l=o("string-to-symbol-registry"),h=o("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!i},{for:function(e){var t,e=n(e);return a(l,e)?l[e]:(t=s("Symbol")(e),l[e]=t,h[t]=e,t)}})},3962(e,t,i){i(5852)("hasInstance")},7123(e,t,i){i(5852)("isConcatSpreadable")},9488(e,t,i){i(5852)("iterator")},5302(e,t,i){i(3712),i(5203),i(2885),i(7911),i(5434)},2885(e,t,i){var r=i(7725),s=i(9522),a=i(8944),n=i(1958),o=i(8762),i=i(8433),l=o("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!i},{keyFor:function(e){if(!a(e))throw new TypeError(n(e)+" is not a symbol");if(s(l,e))return l[e]}})},4411(e,t,i){i(5852)("matchAll")},4101(e,t,i){i(5852)("match")},3356(e,t,i){i(5852)("replace")},7494(e,t,i){i(5852)("search")},5814(e,t,i){i(5852)("species")},220(e,t,i){i(5852)("split")},2795(e,t,i){var r=i(5852),i=i(9221);r("toPrimitive"),i()},7680(e,t,i){var r=i(3220),s=i(5852),i=i(9290);s("toStringTag"),i(r("Symbol"),"Symbol")},9691(e,t,i){i(5852)("unscopables")}},r={};function Ba(e){var t=r[e];return void 0!==t||(t=r[e]={exports:{}},i[e].call(t.exports,t,t.exports,Ba)),t.exports}Ba.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return Ba.d(t,{a:t}),t},Ba.d=(e,t)=>{for(var i in t)Ba.o(t,i)&&!Ba.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},Ba.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),Ba.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);{Ba(3305),Ba(641),Ba(4624),Ba(7446),Ba(7302),Ba(3429),Ba(8526),Ba(2348),Ba(2152),Ba(4948);class fn extends CustomEvent{static toString(){return this.eventName}}class Sp extends fn{constructor(e){super(Sp.eventName,{detail:e})}}Sp.eventName="video:canplay";class kp extends fn{constructor(e){super(kp.eventName,{detail:e})}}kp.eventName="video:canplaythrough";class _p extends fn{constructor(){super(_p.eventName)}}_p.eventName="video:ended";class Lp extends fn{constructor(e){super(Lp.eventName,{detail:e})}}Lp.eventName="video:forward";class Ap extends fn{constructor(e){super(Ap.eventName,{detail:e})}}Ap.eventName="video:loadeddata";class Rp extends fn{constructor(e){super(Rp.eventName,{detail:e})}}Rp.eventName="video:loadedmetadata";class Ip extends fn{constructor(e){super(Ip.eventName,{detail:e})}}Ip.eventName="video:pause";class Pp extends fn{constructor(){super(Pp.eventName)}}Pp.eventName="video:play";class Cp extends fn{constructor(e){super(Cp.eventName,{detail:e})}}Cp.eventName="video:playing";class xp extends fn{constructor(e){super(xp.eventName,{detail:e})}}xp.eventName="video:progress";class Dp extends fn{constructor(){super(Dp.eventName)}}Dp.eventName="video:ready";class Op extends fn{constructor(e){super(Op.eventName,{detail:e})}}Op.eventName="video:rewind";class Mp extends fn{constructor(e){super(Mp.eventName,{detail:e})}}Mp.eventName="video:speedchange";class Fp extends fn{constructor(e){super(Fp.eventName,{detail:e})}}Fp.eventName="video:timeupdate";class Np extends fn{constructor(e){super(Np.eventName,{detail:e})}}Np.eventName="video:timeupdate-ms";class Up extends fn{constructor(e){super(Up.eventName,{detail:e})}}Up.eventName="video:volumechange";class $p extends fn{constructor(e){super($p.eventName,{detail:e})}}$p.eventName="video:waiting";let a={Canplay:Sp,Canplaythrough:kp,Ended:_p,Forward:Lp,Loadeddata:Ap,Loadedmetadata:Rp,Pause:Ip,Play:Pp,Playing:Cp,Progress:xp,Ready:Dp,Rewind:Op,Speedchange:Mp,Timeupdate:Fp,TimeupdateMs:Np,Volumechange:Up,Waiting:$p};class Bp{get smartAutoPlay(){return this.instance.inSmartAutoPlay}constructor(e){this.instance=e,this.video={currentTime:0},this.analytics={player:{options:{id:this.instance.config.id}}},this.instance.addEventListener(a.Timeupdate,e=>{this.video.currentTime=e.detail.time})}on(e,t){"timeupdate"===e&&this.instance.addEventListener(a.Timeupdate,e=>{t(e.detail.time)})}}class Vp{constructor(){this.doc=document,this.instances=[],this.win=window,this.obeserveInstances()}obeserveInstances(){let t=new Set;this.doc.addEventListener("player:ready",e=>{t.has(e.detail.player)||(t.add(e.detail.player),e=new Bp(e.detail.player),this.instances.push(e))})}}Vp.smartplayer=new Vp;var Sn,Va=()=>{window.smartplayer||(console.log("ApiCompat: loaded"),window.smartplayer=Vp.smartplayer)};document.addEventListener("DOMContentLoaded",Va),window.addEventListener("load",Va),"complete"===document.readyState&&Va();class jp extends fn{constructor(e){super(jp.eventName,{detail:e})}}jp.eventName="callaction:connected";class Gp extends fn{constructor(e){super(Gp.eventName,{detail:e})}}Gp.eventName="callaction:current-active-items";class Hp extends fn{constructor(e){super(Hp.eventName,{detail:e})}}Hp.eventName="callaction:disconnected";let r={Connected:jp,CurrentActiveItems:Gp,Disconnected:Hp};class zp extends fn{constructor(){super(zp.eventName)}}zp.eventName="conversion-tracking:disabled";class Kp extends fn{constructor(){super(Kp.eventName)}}Kp.eventName="conversion-tracking:enabled";class Wp extends fn{constructor(e){super(Wp.eventName,{detail:e})}}Wp.eventName="register-url-updater";class Yp extends fn{constructor(e){super(Yp.eventName,{detail:e})}}Yp.eventName="conversion-tracking:update";let t={Disabled:zp,Enabled:Kp,RegisterUrlUpdater:Wp,Update:Yp};class qp extends fn{constructor(e){super(qp.eventName,{detail:e})}}qp.eventName="fullscreen:enter";class Xp extends fn{constructor(e){super(Xp.eventName,{detail:e})}}Xp.eventName="fullscreen:exit";class Qp extends fn{constructor(){super(Qp.eventName,{bubbles:!0,composed:!0})}}Qp.eventName="fullscreen:expand";class Zp extends fn{constructor(){super(Zp.eventName,{bubbles:!0,composed:!0})}}Zp.eventName="fullscreen:minimize";class Jp extends fn{constructor(){super(Jp.eventName,{bubbles:!0,composed:!0})}}Jp.eventName="fullscreen:toggle";let n={Entered:qp,Exited:Xp,Expand:Qp,Minimize:Zp,Toggle:Jp};class ef extends fn{constructor(){super(ef.eventName)}}ef.eventName="license:allowed";class tf extends fn{constructor(e){super(tf.eventName,{detail:e})}}tf.eventName="license:denied";class rf extends fn{constructor(e){super(rf.eventName,{detail:e})}}rf.eventName="license:error";let P={Allowed:ef,Denied:tf,Error:rf};class sf extends fn{constructor(){super(sf.eventName)}}sf.eventName="pitch:time";let C={TimeReached:sf};class af extends fn{constructor(e){super(af.eventName,{detail:e})}}af.eventName="player:blocked";class nf extends fn{constructor(e){super(nf.eventName,{detail:e})}}nf.eventName="player:config-updated";class of extends fn{constructor(){super(of.eventName)}}of.eventName="player:offline";class lf extends fn{constructor(){super(lf.eventName)}}lf.eventName="player:online";class hf extends fn{constructor(e){super(hf.eventName,{detail:e})}}hf.eventName="player:ready";class df extends fn{constructor(){super(df.eventName)}}df.eventName="player:resize";class cf extends fn{constructor(e){super(cf.eventName,{detail:e})}}cf.eventName="player:unblocked";let o={Blocked:af,ConfigUpdated:nf,Offline:of,Online:lf,Ready:hf,Resize:df,Unblocked:cf};class uf extends fn{constructor(e){super(uf.eventName,{detail:e})}}uf.eventName="preload:expired";class pf extends fn{constructor(e){super(pf.eventName,{detail:e})}}pf.eventName="preload:removed";let x={Expired:uf,Removed:pf};class ff extends fn{constructor(){super(ff.eventName)}}ff.eventName="smartautoplay:active";class gf extends fn{constructor(e){super(gf.eventName,{detail:e})}}gf.eventName="smartautoplay:inactive";class mf extends fn{constructor(){super(mf.eventName)}}mf.eventName="smartautoplay:play";class vf extends fn{constructor(e){super(vf.eventName,{detail:e})}}vf.eventName="smartautoplay:selected";class yf extends fn{constructor(){super(yf.eventName)}}yf.eventName="smartautoplay:video-ready";class bf extends fn{constructor(e){super(bf.eventName,{bubbles:!0,composed:!0,detail:e})}}bf.eventName="background-probe:iframe-trigger-updated";class Ef extends fn{constructor(){super(Ef.eventName)}}Ef.eventName="background-probe:iframe-interaction";let D={IframeTriggerUpdated:bf,IframeUserInteraction:Ef},s={Active:ff,Inactive:gf,Play:mf,Selected:vf,VideoReady:yf};(Va=Sn=Sn||{}).LOW="low",Va.MEDIUM="medium",Va.HIGH="high";class Tf extends fn{constructor(){super(Tf.eventName)}}Tf.eventName="resume:active";class wf extends fn{constructor(){super(wf.eventName)}}wf.eventName="resume:continue";class Sf extends fn{constructor(){super(Sf.eventName)}}Sf.eventName="resume:inactive";class kf extends fn{constructor(){super(kf.eventName)}}kf.eventName="resume:restart";let i={Active:Tf,Continue:wf,Inactive:Sf,Restart:kf},O=({delay:t,isReady:i,shouldResolveImmediately:r=!0,timeout:s})=>{let a=null,n=null;return new Promise(e=>{if(r&&i())return e(!0);a=setTimeout(()=>{n&&clearInterval(n),a&&clearTimeout(a),e(!1)},s),n=setInterval(()=>{i()&&(n&&clearInterval(n),a&&clearTimeout(a),e(!0))},t)})},c=({prefix:e,suffix:t}={})=>void 0!==window.crypto&&"function"==typeof window.crypto.randomUUID?""+(null!=e?e:"")+window.crypto.randomUUID()+(null!=t?t:""):""+(null!=e?e:"")+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})+(null!=t?t:"");class _f{constructor(e,t){this.value=e,this.next=t}hasReference(e){let t=this;for(;t;){if(t.value===e)return!0;t=t.next}return!1}}let M=e=>e instanceof Object&&function t(i,r){r=new _f(i,r);for(var s in i){let e=i[s];if(e instanceof Object&&(r.hasReference(e)||t(e,r)))return!0}return!1}(e,null);class Lf extends Error{constructor(e,t,i,r,s){super(e),this.module=t,this.traceId=i,this.spanId=r,this.metadata=s}}class Af extends Error{constructor(e,t,i,r,s,a){super(e),this.module=t,this.traceId=i,this.spanId=r,this.network=s,this.metadata=a}}let F=()=>/chrome/i.test(window.navigator.userAgent),N={debug:"",error:"",info:"",trace:"",warning:""},U="",$=(e,t,i)=>{e=[`${e=e,F()?`${N[e]}[${e.toLocaleUpperCase()}]:`+U:e.toLocaleUpperCase()} `+t];return i&&e.push(i),e},V=["trace","debug","info","warning","error"],j=e=>{try{var t=/^\[(.*)\]|^(\w+):\s/g.exec(e);return(null==t?void 0:t[1])||(null==t?void 0:t[2])||"Unknown"}catch(e){return"Unknown"}},z=()=>"deviceMemory"in navigator&&"number"==typeof navigator.deviceMemory?1024*navigator.deviceMemory*1024*1024:void 0;class Rf{constructor(e){this.loggerOptions=e,this.traceId=null,this.contexts={},this.sentryKey="c66faa8e28e47bb7a9baa128334e4b48",this.sentryUrl="https://sentry.io/api/4509130195468288/envelope/"}send(e,t){this.request(e,t)}stackToFrame(e){let s=/at (.*) \((.*):(\d+):(\d+)\)/;return e.split("\n").map(e=>{var t,i,r,e=e.match(s);return e?([,e,t,i,r]=e,{colno:parseInt(r),filename:t,function:e,in_app:!0,lineno:parseInt(i)}):null}).filter(e=>null!==e)}safeObject(e){try{if(!M(e))return e}catch(e){}}buildEnvelope(e,t){return JSON.stringify({breadcrumbs:t.map(e=>Object.assign(Object.assign({},e),{data:this.safeObject(e.data)})),contexts:{device:this.deviceContext(),gpu:this.gpuContext()},environment:"production",event_id:c(),exception:{values:[{value:e.message,module:e.module,stacktrace:{frames:this.stackToFrame(e.stack||"")}}]},extra:{metadata:this.safeObject(e.metadata),player_configs:this.loggerOptions.player_configs,device_id:this.loggerOptions.device_id,session_id:this.loggerOptions.session_id,referer:document.referrer,url:window.location.href,network:e instanceof Af?{response:{status:null==(t=e.network.response)?void 0:t.status,statusText:null==(t=e.network.response)?void 0:t.statusText,body:null==(t=e.network.response)?void 0:t.body},request:{url:e.network.request.url,method:e.network.request.method,headers:e.network.request.headers,data:e.network.request.body}}:void 0},level:"error",logger:"smartplayer",platform:"javascript",release:"smartplayer@4.14.0",request:e instanceof Af?{url:e.network.request.url,method:e.network.request.method,headers:e.network.request.headers,data:e.network.request.body}:void 0,sdk:{integrations:["Logger"],name:"smartplayer",version:"4.14.0"},server_name:window.location.hostname,timestamp:(new Date).getTime()/1e3,transaction:e.module||"Unknown",user:{id:null==(t=this.loggerOptions.player_configs)?void 0:t.oid,ip_address:"{{auto}}"}})}deviceContext(){var e;return this.contexts.device||(this.contexts.device={arch:navigator.platform,device_type:/Mobi|Android|iPhone|iPad|Windows Phone/i.test(navigator.userAgent)?"Handheld":"Desktop",family:navigator.platform,language:navigator.language,manufacturer:navigator.vendor||void 0,memory_size:z(),model:navigator.userAgent.split(/[()]/)[1],name:navigator.userAgent,online:navigator.onLine,orientation:null!=(e=null==(e=window.screen.orientation)?void 0:e.type)&&e.includes("portrait")?"portrait":"landscape",processor_count:navigator.hardwareConcurrency,screen_density:window.devicePixelRatio,screen_height_pixels:window.screen.height,screen_resolution:window.screen.width+"x"+window.screen.height,screen_width_pixels:window.screen.width,supports_accelerometer:"DeviceMotionEvent"in window,supports_audio:"AudioContext"in window,supports_gyroscope:"DeviceOrientationEvent"in window,supports_location_service:"geolocation"in navigator,supports_vibration:"vibrate"in navigator,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}),this.contexts.device}gpuContext(){var e,t;return this.contexts.gpu||(this.contexts.gpu={api_type:window.WebGLRenderingContext?"WebGL":"Unknown",memory_size:z(),multi_threaded_rendering:!1,name:(t=(t=document.createElement("canvas")).getContext("webgl")||t.getContext("experimental-webgl"))&&(e=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(e.UNMASKED_RENDERER_WEBGL):"Unknown",npot_support:document.createElement("canvas").getContext("webgl")?"Full":"Unknown",vendor_name:(t=(t=document.createElement("canvas")).getContext("webgl")||t.getContext("experimental-webgl"))&&(e=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(e.UNMASKED_VENDOR_WEBGL):"Unknown",version:(t=document.createElement("canvas").getContext("webgl"))?t.getParameter(t.VERSION):"Unknown"}),this.contexts.gpu}request(e,t){var i=new XMLHttpRequest;i.open("POST",this.sentryUrl,!0),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8"),i.setRequestHeader("X-Sentry-Auth",`Sentry sentry_version=7, sentry_key=${this.sentryKey}, sentry_client=smartplayer/4.1.0`),i.withCredentials=!1,i.send(this.buildEnvelope(e,t))}}class If{constructor(e){this.shouldDisplayLog=e}debug(e,t){this.shouldDisplayLog("debug",e)&&console.debug(...$("debug",e,t))}error(e,t){this.shouldDisplayLog("error",e)&&console.error(...$("error",e,t))}info(e,t){this.shouldDisplayLog("info",e)&&console.info(...$("info",e,t))}trace(e,t){this.shouldDisplayLog("trace",e)&&console.debug(...$("trace",e,t))}warning(e,t){this.shouldDisplayLog("warning",e)&&console.warn(...$("warning",e,t))}}class Pf{constructor(e,t){this.shouldDisplayLog=e,this.onEnd=t,this.level="debug",this.description="",this.messages=[],this.logMessage=new If(()=>!0)}group(e,t){return this.level=e,this.description=t,this}message(e,t){return this.messages.push({message:e,metadata:t}),this}end(){if(this.onEnd(this.level,this.description,this.messages),this.shouldDisplayLog(this.level,this.description)){console.groupCollapsed(...$(this.level,this.description));let t=(this.logMessage[this.level]||this.logMessage.info).bind(this.logMessage);this.messages.forEach(e=>t(e.message,e.metadata)),console.groupEnd()}}}let K=["trace","debug","info","warning","error"];class gn{constructor(e,t={}){this.named=e,this.options=t,this.breadcrumb=[],this.onGroupEnd=(e,t,i)=>{this.addCrumb("trace"===e?"debug":e,t,i),"error"===e&&this.sendErrorToMiddleware(t,i)},this.sendNetworkErrorToMiddleware=(e,t)=>{try{this.errorMiddleware.send(({traceId:i,message:r,network:s,metadata:a}=[{traceId:this.traceId,message:e,network:t}][0],n=j(r),new Af(r,n,i,c(),s,a)),this.breadcrumb)}catch(e){console.error(e)}var i,r,s,a,n},this.sendErrorToMiddleware=(e,t)=>{try{this.errorMiddleware.send(({traceId:i,message:r,metadata:s}=[{traceId:this.traceId,message:e,metadata:t}][0],a=j(r),new Lf(r,a,i,c(),s)),this.breadcrumb)}catch(e){console.error(e)}var i,r,s,a},this.addCrumb=(e,t,i)=>{this.breadcrumb.push({level:e,message:t,data:i,timestamp:(new Date).getTime()/1e3}),5{var i,t=K.indexOf(t),r=K.indexOf(gn.level);try{return null!=(i=gn.searchMatch)&&i.length&&e?new RegExp(decodeURIComponent(gn.searchMatch),"i").test(e)&&r<=t:r<=t}catch(e){return r<=t}},this.prefixedMessage=e=>this.named?this.named+": "+e:e;var{logLevel:e,searchMatch:t}=(()=>{try{var e=new URL(window.location.href),t=e.searchParams.get("logLevel");return{logLevel:t&&V.includes(t.toLocaleLowerCase())?t:null,searchMatch:e.searchParams.get("logMatch")}}catch(e){return{logLevel:null,searchMatch:null}}})();e&&(gn.level=e),t&&(gn.searchMatch=t),gn.traceId||(gn.traceId=c()),this.errorMiddleware=new Rf(this.options),this.logMessage=new If((e,t)=>this.shouldDisplayLog(e,t))}get traceId(){return gn.traceId}get level(){return gn.level}set loggerOptions(e){this.options=Object.assign(Object.assign({},this.options),e),this.errorMiddleware.loggerOptions=this.options}debug(e,t){this.addCrumb("debug",e,t),this.logMessage.debug(this.prefixedMessage(e),t)}network(e,t){this.addCrumb("error",e,t),this.sendNetworkErrorToMiddleware(e,t),this.logMessage.error(this.prefixedMessage(e),t)}error(e,t){this.addCrumb("error",e,t),this.sendErrorToMiddleware(e,t),this.logMessage.error(this.prefixedMessage(e),t)}info(e,t){this.addCrumb("info",e,t),this.logMessage.info(this.prefixedMessage(e),t)}trace(e,t){this.addCrumb("debug",e,t),this.logMessage.trace(this.prefixedMessage(e),t)}warn(e,t){this.addCrumb("warning",e,t),this.logMessage.warning(this.prefixedMessage(e),t)}group(e,t){return new Pf(()=>this.shouldDisplayLog(e,t),this.onGroupEnd).group(e,this.prefixedMessage(t))}}gn.level="warning",gn.searchMatch=void 0;class mn{get config(){return this.player.config}constructor(e){this.player=e,this.mounted=!1,this.logger=new gn(this.constructor.controllerName,{player_configs:e.config}),this.player.addController(this)}hostConnected(){this.checkRequirements()&&(this.init(),this.mount())}hostUpdated(){!this.mounted&&this.checkRequirements()&&(this.init(),this.mount())}init(){this.logger.error("method not implemented")}checkRequirements(){return this.logger.trace("checking requirements"),this.constructor.requirements.every(e=>e(this.player))}mount(){this.mounted=!0}}mn.controllerName="PlayerController",mn.requirements=[];var kn,_n=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})},Ln=function(e,t,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e===t&&r:t.has(e))return"m"===i?r:"a"===i?r.call(e):r?r.value:t.get(e);throw new TypeError("Cannot read private member from an object whose class did not declare it")};class Cf extends mn{constructor(){super(...arguments),kn.set(this,{finished:!1,played:!1,resume:!1,smartAutoPlay:!1})}anyBlocker(...e){return e.some(e=>Ln(this,kn,"f")[e])}anyBlockerAsync(e){return _n(this,arguments,void 0,function*(e,t=100){return O({timeout:t,delay:10,isReady:()=>this.anyBlocker(...e),shouldResolveImmediately:!1})})}block(e){Ln(this,kn,"f")[e]||(this.logger.info("block "+e),Ln(this,kn,"f")[e]=!0,this.player.dispatchEvent(new o.Blocked({blocker:e})),this.player.deepUpdate(),this.logger.debug("Blocking "+e))}init(){this.logger.debug("init");var e=()=>{this.block("played")};this.player.addEventListener(s.Play,e),this.player.addEventListener(i.Continue,e),this.player.addEventListener(i.Restart,e)}noneBlocker(...e){return e.every(e=>!Ln(this,kn,"f")[e])}noneBlockerAsync(e){return _n(this,arguments,void 0,function*(e,t=100){return!(yield this.anyBlockerAsync(e,t))})}unblock(e){Ln(this,kn,"f")[e]&&(this.logger.info("unblock "+e),Ln(this,kn,"f")[e]=!1,this.player.dispatchEvent(new o.Unblocked({blocker:e})),this.player.deepUpdate(),this.logger.debug("Unblocking "+e))}}kn=new WeakMap,Cf.controllerName="BlockerController";class xf extends fn{constructor(e){super(xf.eventName,{bubbles:!0,composed:!0,detail:e})}}xf.eventName="analytics:event";class Df extends fn{constructor(){super(Df.eventName,{bubbles:!0,composed:!0})}}Df.eventName="analytics:exited-click";class Of extends fn{constructor(e){super(Of.eventName,{bubbles:!0,composed:!0,detail:e})}}Of.eventName="analytics:metric";let l={Event:xf,ExitedClick:Df,Metric:Of};var An=Object.prototype.hasOwnProperty;function Rn(e,t,i){for(i of e.keys())if(In(i,t))return i}function In(e,t){var i,r,s;if(e===t)return 1;if(e&&t&&(i=e.constructor)===t.constructor){if(i===Date)return e.getTime()===t.getTime();if(i===RegExp)return e.toString()===t.toString();if(i===Array){if((r=e.length)===t.length)for(;r--&&In(e[r],t[r]););return-1===r}if(i===Set){if(e.size!==t.size)return;for(r of e){if((s=r)&&"object"==typeof s&&!(s=Rn(t,s)))return;if(!t.has(s))return}return 1}if(i===Map){if(e.size!==t.size)return;for(r of e){if((s=r[0])&&"object"==typeof s&&!(s=Rn(t,s)))return;if(!In(r[1],t.get(s)))return}return 1}if(i===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(i===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!i||"object"==typeof e){for(i in r=0,e){if(An.call(e,i)&&++r&&!An.call(t,i))return;if(!(i in t&&In(e[i],t[i])))return}return Object.keys(t).length===r}}return e!=e&&t!=t}class Mf{constructor(e){this.host=e,this._changedProperties=new Map,this._previousValues=new Map,this._trackedProperties=[],this.logger=new gn(this.constructor.name),e.addController({hostConnected:()=>{var e;this._snapshotValues(),this.logger.debug("hostConnected"),null!=(e=this.hostConnected)&&e.call(this)},hostDisconnected:()=>{var e;this.logger.debug("hostDisconnected"),null!=(e=this.hostDisconnected)&&e.call(this)},hostUpdate:()=>{var e;this._changedProperties=this._computeChangedProperties(),this._logChangedProperties("hostUpdate"),null!=(e=this.hostUpdate)&&e.call(this,this._changedProperties)},hostUpdated:()=>{var e;this._snapshotValues(),this._logChangedProperties("hostUpdated"),null!=(e=this.hostUpdated)&&e.call(this,this._changedProperties)}})}trackProperties(...t){for(let e of t)this._trackedProperties.push({getter:()=>this.host[e],key:e})}_computeChangedProperties(){var e,t,i=new Map;for({getter:e,key:t}of this._trackedProperties){var r=e(),s=this._previousValues.get(t);In(s,r)||i.set(t,s)}return i}_logChangedProperties(e){0{this.canPlay=!0},this.onWaiting=()=>{this.canPlay=!1}}init(){this.player.addEventListener(a.Canplay,this.onCanPlay),this.player.addEventListener(a.Waiting,this.onWaiting)}destroy(){this.player.removeEventListener(a.Canplay,this.onCanPlay),this.player.removeEventListener(a.Waiting,this.onWaiting)}awaitPlay(){return xn(this,arguments,void 0,function*(e=5e3){try{var t=yield O({timeout:e,delay:50,isReady:()=>this.canPlay});if(this.logger.debug("awaitPlay: isReady?",t),t)return this.play();this.logger.error("Video is not ready to play, waiting for canplay event"),this.player.addEventListener(a.Canplay,this.play,{once:!0})}catch(e){this.logger.error("Failed to await play",{error:e})}})}mute(){try{this.player.ready&&this.player.video?(Dn(this,Pn,this.player.video.volume,"f"),this.player.video.volume=0,this.player.muted=!0):this.logger.warn("mute: host not ready")}catch(e){this.logger.error("Failed to mute video",{error:e})}}pause(e=!1){try{this.player.ready?!e&&this.player.config.playback.disablePause?this.logger.debug("pause: blocked by disablePause"):this.player.video.pause():this.logger.warn("pause: host not ready")}catch(e){this.logger.error("Failed to pause video",{error:e})}}play(){return xn(this,void 0,void 0,function*(){try{this.player.controllers.blockers.noneBlocker("played","smartAutoPlay","resume")&&this.player.controllers.blockers.block("played"),this.player.ready?(this.logger.info("play"),yield this.player.video.play(),this.logger.debug("play: video played")):this.logger.warn("play: host not ready")}catch(e){e instanceof Error?this.logger.error("Failed to play video: "+e.message,{error:e}):this.logger.error("Failed to play video",{error:e})}})}seek(e){try{this.player.ready&&this.player.video?(this.player.controllers.blockers.noneBlocker("smartAutoPlay","resume")&&this.player.controllers.blockers.anyBlocker("played")&&this.logger.info("seek",e),this.player.video.currentTime=e,this.player.dispatchEvent(new a.Timeupdate({time:e})),this.player.dispatchEvent(new a.TimeupdateMs({time:e}))):this.logger.warn("seek: host not ready")}catch(e){this.logger.error("Failed to seek video",{error:e})}}speed(e){try{this.player.ready?this.player.video.playbackRate=e:this.logger.warn("speed: host not ready")}catch(e){this.logger.error("Failed to set video speed",{error:e})}}toggle(){var e,t,i;try{this.logger.group("debug","toggle").message("#played",On(this,Cn,"f")).message("video played",!(null==(e=this.player.video)||!e.played)).message("video paused",null==(t=this.player.video)?void 0:t.paused).message("disablePause",this.player.config.playback.disablePause).end(),null!=(i=this.player.video)&&i.paused?this.play():this.player.config.playback.disablePause||this.pause()}catch(e){this.logger.error("Failed to toggle play/pause",{error:e})}}unmute(){try{this.player.ready&&this.player.video?(On(this,Pn,"f")<=.05?this.player.video.volume=1:this.player.video.volume=On(this,Pn,"f"),this.player.muted=!1):this.logger.warn("unmute: host not ready")}catch(e){this.logger.error("Failed to unmute video",{error:e})}}volume(e){try{this.player.ready?(0e&&!!t];var Mn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};let W={canplay:a.Canplay,canplaythrough:a.Canplaythrough,loadeddata:a.Loadeddata,loadedmetadata:a.Loadedmetadata,playing:a.Playing,progress:a.Progress,ratechange:a.Speedchange,waiting:a.Waiting};class Uf extends mn{constructor(){super(...arguments),this.lastTime=0}init(){return Mn(this,void 0,void 0,function*(){this.logger.trace("init",[this.player.video,this.player]),this.videoObserver();try{this.player.video.addEventListener("play",()=>Mn(this,void 0,void 0,function*(){var e=yield this.player.controllers.blockers.anyBlockerAsync(["played"]);this.logger.group("trace","Video play").message("CustomEvent",a.Play.eventName).message("Video Event: play").message("Expected Blockers: played").message("Blocked",e).end(),e&&(this.logger.info("Video play: dispatching event"),this.player.dispatchEvent(new a.Play))})),this.logger.trace("Registered video play event listener"),this.player.video.addEventListener("ended",()=>Mn(this,void 0,void 0,function*(){var e=yield this.player.controllers.blockers.anyBlockerAsync(["played"]);this.logger.group("trace","Video ended").message("CustomEvent",a.Ended.eventName).message("Video Event: ended").message("Expected Blockers: played").message("Blocked",e).end(),e&&(this.logger.info("Video ended: dispatching event"),this.player.dispatchEvent(new a.Ended))})),this.logger.trace("Registered video ended event listener");let i=0;this.player.video.addEventListener("timeupdate",e=>Mn(this,void 0,void 0,function*(){var e,t;(yield this.player.controllers.blockers.noneBlockerAsync(["played"]))||(e=this.player.video,this.player.dispatchEvent(new a.TimeupdateMs({time:e.currentTime})),(t=Math.floor(null!=(t=e.currentTime)?t:0))!==i&&(i=t,this.player.dispatchEvent(new a.Timeupdate({time:e.currentTime}))))})),this.logger.trace("Registered video timeupdate event listener"),this.player.video.addEventListener("pause",()=>Mn(this,void 0,void 0,function*(){var e=yield this.player.controllers.blockers.anyBlockerAsync(["played"]);this.logger.group("trace","Video paused").message("CustomEvent",a.Pause.eventName).message("Video Event: pause").message("Expected Blockers: played").message("Blocked",e).end(),e&&(this.logger.info("Video paused: dispatching event"),this.player.dispatchEvent(new a.Pause({time:this.player.video.currentTime})),this.player.deepUpdate())})),this.logger.trace("Registered video paused event listener"),this.player.video.addEventListener("volumechange",()=>Mn(this,void 0,void 0,function*(){this.player.dispatchEvent(new a.Volumechange({volume:this.player.video.volume}))})),this.logger.trace("Registered video volumechange event listener")}catch(e){this.logger.error("Failed to add video event listener",{error:e})}})}videoObserver(){let i=this.player.video;Object.entries(W).forEach(([e,t])=>{i.addEventListener(e,()=>{this.logger.info("Video event",e),this.player.dispatchEvent(new t({video:i}))})})}}Uf.controllerName="EventsController",Uf.requirements=[({ready:e,video:t})=>e&&!!t];class $f extends fn{constructor(){super($f.eventName)}}$f.eventName="controls:active";class Bf extends fn{constructor(){super(Bf.eventName)}}Bf.eventName="control-bar:closer";class Vf extends fn{constructor(){super(Vf.eventName)}}Vf.eventName="controls:inactive";class jf extends fn{constructor(e){super(jf.eventName,{detail:e})}}jf.eventName="controls:items";let h={Active:$f,BarCloser:Bf,Inactive:Vf,Items:jf};class Gf extends fn{constructor(){super(Gf.eventName)}}Gf.eventName="fakebar:active";class Hf extends fn{constructor(){super(Hf.eventName)}}Hf.eventName="fakebar:inactive";class zf extends fn{constructor(e){super(zf.eventName,{detail:e})}}zf.eventName="fakebar:progress";class Kf extends fn{constructor(e){super(Kf.eventName,{detail:e})}}Kf.eventName="fakebar:width";let Q={Active:Gf,Inactive:Hf,Progress:zf,Width:Kf};class Wf extends fn{constructor(){super(Wf.eventName)}}Wf.eventName="headline:active";class Yf extends fn{constructor(e){super(Yf.eventName,{bubbles:!0,composed:!0,detail:e})}}Yf.eventName="headline:chosen";class qf extends fn{constructor(){super(qf.eventName)}}qf.eventName="headline:inactive";let Z={Active:Wf,Chosen:Yf,Inactive:qf};class Xf extends fn{constructor(){super(Xf.eventName)}}Xf.eventName="minihook:active";class Qf extends fn{constructor(){super(Qf.eventName)}}Qf.eventName="minihook:inactive";class Zf extends fn{constructor(e){super(Zf.eventName,{detail:e})}}Zf.eventName="minihook:items";let J={Active:Xf,Inactive:Qf,Items:Zf};class Jf extends fn{constructor(){super(Jf.eventName)}}Jf.eventName="turbo:active";class eg extends fn{constructor(){super(eg.eventName)}}eg.eventName="turbo:inactive";class tg extends fn{constructor(e){super(tg.eventName,{detail:e})}}tg.eventName="turbo:speed-changed";let ee={Active:Jf,Inactive:eg,SpeedChanged:tg};class ig extends fn{constructor(){super(ig.eventName)}}ig.eventName="subtitle:active";class rg extends fn{constructor(e){super(rg.eventName,{detail:e})}}rg.eventName="subtitle:config-change";class sg extends fn{constructor(){super(sg.eventName)}}sg.eventName="subtitle:inactive";class ag extends fn{constructor(e){super(ag.eventName,{detail:e})}}ag.eventName="subtitle:track-change";let te={Active:ig,ConfigChange:rg,Inactive:sg,TrackChange:ag};var Fn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class ng extends mn{get showing(){return this.player.player.classList.contains("show-controls")}constructor(e){super(e),this.blockClose=!1,this.doc=document,this.hide=()=>{var e;this.blockClose||this.player.paused||(clearTimeout(this.showControlsTimeout),e=this.player.player,this.logger.debug("hide controls"),e.classList.remove("show-controls"),this.player.dispatchEvent(new h.Inactive))},this.onFirstPlay=()=>{this.show(),this.player.removeEventListener(a.Play,this.onFirstPlay)},this.onKeyBindingBlocker=()=>{this.blockClose=!this.blockClose},this.show=()=>Fn(this,void 0,void 0,function*(){try{var e;this.player.controllers.blockers.anyBlocker("resume","smartAutoPlay")||this.player.controllers.blockers.anyBlocker("played")&&(clearTimeout(this.showControlsTimeout),e=this.player.player,this.showControlsTimeout=setTimeout(()=>{this.blockClose?this.show():this.hide()},ng.hideTime),e.classList.add("show-controls"),this.player.dispatchEvent(new h.Active))}catch(e){this.logger.error("Error showing controls",e)}}),this.touch=(e,t)=>Fn(this,void 0,void 0,function*(){try{this.player.controllers.blockers.anyBlocker("played")&&(e.preventDefault(),e.stopPropagation(),this.player.pauseOneTouch?(t(),this.show()):this.showing?t():this.show())}catch(e){this.logger.error("Error handling touch event",e)}}),this.keyBindingBlocker=((t,i)=>{let r=0;return e=>{e.key===t[r]?++r===t.length&&(i(),r=0):r=0}})(["v","c","b"],this.onKeyBindingBlocker)}dispatchCloser(){this.player.dispatchEvent(new h.BarCloser)}init(){return Fn(this,void 0,void 0,function*(){this.doc.addEventListener("keydown",this.keyBindingBlocker),this.player.addEventListener(a.Play,this.onFirstPlay,{once:!0})})}}ng.controllerName="BarController",ng.hideTime=3500;var Nn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class og extends mn{constructor(){super(...arguments),this.state={action_buttons:[],controls_hide_time:ng.hideTime,controls_items:{},current_time:0,default_config:this.player.config,fakebar_active:!1,fakebar_progress:0,fakebar_width:0,headline_active:!1,headline_changed:null,minihook_active:!1,minihook_items:[],resume_action:"",resume_initialized:!1,resume_running:!1,smartautoplay_initialized:!1,smartautoplay_running:!1,smartautoplay_selected:null,subtitle_active:!1,subtitle_config:null,subtitle_multiplier:1,turbo_active:!1,turbo_speed:1,turbo_type:"single",video_duration:0,video_muted:!1,video_playing:!1}}get info(){var e;return Object.assign(Object.assign({},this.state),{controls_hide_time:ng.hideTime,current_time:null==(e=this.player.video)?void 0:e.currentTime,default_config:this.player.config,video_duration:null==(e=this.player.video)?void 0:e.duration,video_height:null==(e=this.player.video)?void 0:e.videoHeight,video_muted:null==(e=this.player.video)?void 0:e.muted,video_playing:!(null!=(e=this.player.video)&&e.paused),video_poster:null==(e=this.player.video)?void 0:e.poster,video_src:null==(e=this.player.video)?void 0:e.src,video_volume:null==(e=this.player.video)?void 0:e.volume,video_width:null==(e=this.player.video)?void 0:e.videoWidth})}init(){return Nn(this,void 0,void 0,function*(){})}}og.controllerName="FeaturesController";let d=()=>/mobile/i.test(window.navigator.userAgent),ie=e=>e.active&&(d()?e.mobile:e.desktop);class lg extends Mf{constructor(){super(...arguments),this._isFeatureEnabled=!1,this.hostConnected=()=>{this._isFeatureEnabled=this.isEnabled(),this._isFeatureEnabled&&this.enableFeature()},this.hostDisconnected=()=>this.disableFeature()}reevaluateFeatureState(){var e=this.isEnabled();e!==this._isFeatureEnabled&&((this._isFeatureEnabled=e)?this.enableFeature():this.disableFeature())}}let re=["fullscreenchange","mozfullscreenchange","msfullscreenchange","MSFullscreenChange","webkitfullscreenchange"];class hg extends lg{get currentFullscreenElement(){return document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}get inFullscreen(){var e;return null!=(e=null==(e=this.host.player)?void 0:e.classList.contains("in-fullscreen"))&&e}constructor(e){super(e),this.disableFeature=()=>{this.minimize(),document.removeEventListener("keydown",this.onKeyDown),this.host.removeEventListener(n.Expand,this.onFullscreenExpand),this.host.removeEventListener(n.Minimize,this.onFullscreenMinimize),this.host.removeEventListener(n.Toggle,this.onFullscreenToggle),re.forEach(e=>document.removeEventListener(e,this.onFullscreenChange))},this.enableFeature=()=>{document.addEventListener("keydown",this.onKeyDown),this.host.addEventListener(n.Expand,this.onFullscreenExpand,{passive:!0}),this.host.addEventListener(n.Minimize,this.onFullscreenMinimize,{passive:!0}),this.host.addEventListener(n.Toggle,this.onFullscreenToggle,{passive:!0}),re.forEach(e=>document.addEventListener(e,this.onFullscreenChange,{passive:!0}))},this.isEnabled=()=>!ie(this.host.config.immersiveMode),this.cancelFullscreenBrowser=()=>{document.fullscreenElement&&(document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msCancelFullScreen?document.msCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen())},this.expand=()=>{var e;this.logger.debug("Entering fullscreen mode"),this.requestFullscreenBrowser(),null!=(e=this.host.player)&&e.classList.add("in-fullscreen"),this.host.dispatchEvent(new n.Entered({type:"fullscreen"}))},this.minimize=()=>{var e;this.logger.debug("Exiting fullscreen mode"),null!=(e=this.host.player)&&e.classList.remove("in-fullscreen"),this.cancelFullscreenBrowser(),this.host.dispatchEvent(new n.Exited({type:"fullscreen"}))},this.onFullscreenChange=()=>{this.logger.debug("Fullscreen state changed",{browserFullscreenElement:this.currentFullscreenElement,playerFullscreenClass:this.inFullscreen}),!this.currentFullscreenElement&&this.inFullscreen&&this.minimize()},this.onFullscreenExpand=()=>this.expand(),this.onFullscreenMinimize=()=>this.minimize(),this.onFullscreenToggle=()=>{this.inFullscreen?this.minimize():this.expand()},this.onKeyDown=e=>{"Escape"===e.key&&this.inFullscreen&&this.minimize()},this.requestFullscreenBrowser=()=>{!d()&&this.host.player&&(this.host.player.requestFullscreen?this.host.player.requestFullscreen():this.host.player.mozRequestFullScreen?this.host.player.mozRequestFullScreen():this.host.player.webkitRequestFullscreen?this.host.player.webkitRequestFullscreen():this.host.player.msRequestFullscreen?this.host.player.msRequestFullscreen():this.host.player.webkitEnterFullscreen&&this.host.player.webkitEnterFullscreen())},this.trackProperties("config")}hostUpdate(e){if(e.has("config"))return this.reevaluateFeatureState()}}let se=(e,t)=>Math.floor(t-e);class dg extends mn{constructor(){super(...arguments),this.win=window,this.buffering_start_time=null,this.lost_connection_time=null,this.video_segments_loaded=[],this.onBufferingStart=()=>{this.buffering_start_time||(this.buffering_start_time=Date.now(),this.trackBufferingStart())},this.onBufferingEnd=()=>{this.buffering_start_time&&(this.trackBufferingEnd(se(this.buffering_start_time,Date.now())),this.buffering_start_time=null)},this.onLostConnection=()=>{this.lost_connection_time||(this.lost_connection_time=Date.now())},this.onRecoveredConnection=()=>{this.lost_connection_time&&(this.trackLostConnection(se(this.lost_connection_time,Date.now())),this.lost_connection_time=null)}}get pageLoadTime(){return this.win._plt}get timeSincePageLoad(){return se(this.pageLoadTime,Date.now())}init(){this.trackTTPI(),this.player.addEventListener(a.Play,()=>{setTimeout(()=>{this.player.addEventListener(a.Waiting,this.onBufferingStart),this.player.addEventListener(a.Canplay,this.onBufferingEnd)},500)},{once:!0}),this.player.addEventListener(o.Offline,this.onLostConnection),this.player.addEventListener(o.Online,this.onRecoveredConnection),this.player.addEventListener(o.Ready,()=>this.trackTTMP(),{once:!0})}destroy(){this.player.removeEventListener(a.Waiting,this.onBufferingStart),this.player.removeEventListener(a.Canplay,this.onBufferingEnd),this.player.removeEventListener(o.Offline,this.onLostConnection),this.player.removeEventListener(o.Online,this.onRecoveredConnection)}trackTTFF(){try{this.player.dispatchEvent(new l.Metric({type:"player.ttff",value:this.timeSincePageLoad}))}catch(e){this.logger.error("Error tracking ttff",e)}}trackTTPI(){try{this.player.dispatchEvent(new l.Metric({type:"player.ttpi",value:this.timeSincePageLoad}))}catch(e){this.logger.error("Error tracking ttpi",e)}}trackTTMP(){try{this.player.dispatchEvent(new l.Metric({type:"player.ttmp",value:this.timeSincePageLoad}))}catch(e){this.logger.error("Error tracking ttmp",e)}}trackBufferingStart(){try{this.player.dispatchEvent(new l.Metric({type:"player.buffering",value:1}))}catch(e){this.logger.error("Error tracking buffering rate",e)}}trackBufferingEnd(e){try{this.player.dispatchEvent(new l.Metric({type:"player.buffering_duration",value:e}))}catch(e){this.logger.error("Error tracking buffering end",e)}}trackLostConnection(e){try{this.player.dispatchEvent(new l.Metric({type:"player.lost_connection",value:1})),this.player.dispatchEvent(new l.Metric({type:"player.lost_connection_duration",value:e}))}catch(e){this.logger.error("Error tracking lost connection",e)}}trackAverageVideoDownload(e){try{this.logger.debug("Tracking video download speed",{segments:[...e]});var t=(e=>{var{duration:t,size:i}=e.reduce((e,t)=>(e.size+=t.bytes/1e3,e.duration+=t.request.end-t.request.start,e),{duration:0,size:0});return{duration:t/e.length,size:i/e.length}})(e),i=8*t.size,r=t.duration/1e3;this.player.dispatchEvent(new l.Metric({type:"player.segment_download_avg_duration_ms",value:t.duration})),this.player.dispatchEvent(new l.Metric({type:"player.segment_download_avg_size_kb",value:t.size})),this.player.dispatchEvent(new l.Metric({type:"player.average_connection_speed_kbps",value:i/r}))}catch(e){this.logger.error("Error tracking download speed",e)}}trackVideoSegmentLoaded(e){try{this.logger.debug("Tracking video segment",{segment:e}),this.video_segments_loaded.push(e),5===this.video_segments_loaded.length&&this.trackAverageVideoDownload(this.video_segments_loaded)}catch(e){this.logger.error("Error tracking video segment loaded",e)}}}dg.controllerName="KPIsController";let ae=(e,t)=>{var i=e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector;return!!i&&i.call(e,t)},ne=(t,i)=>{try{if(t){if("function"==typeof t.closest)return t.closest(i);if(ae(t,i))return t;let e=t.parentElement;for(;e;){if(ae(e,i))return e;e=e.parentElement}}return null}catch(e){return null}};var Un=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};let oe=["vturb-smartplayer","vturb-anchor-button","vturb-custom-html"];class cg extends mn{constructor(){super(...arguments),this._updaters={medium:[],high:[],low:[]},this.win=window,this.injectBrowserSearchParams=(t,r)=>{try{if(!r||!oe.some(e=>ne(r,e)))return t;let i=new URL(t,this.win.location.href);return this.baseSearchParams.forEach((e,t)=>i.searchParams.set(t,e)),i.toString()}catch(e){return this.logger.error("Failed to update URL",{error:e}),t}},this.onRegisterUrlUpdater=e=>{this.logger.group("trace","onRegisterUrlUpdater").message("detail",e.detail).end(),(e.detail.priority===Sn.HIGH?this._updaters.high:e.detail.priority===Sn.MEDIUM?this._updaters.medium:this._updaters.low).push(e.detail.updater)}}get updaters(){return[...this._updaters.low,...this._updaters.medium,...this._updaters.high]}init(){return Un(this,void 0,void 0,function*(){this.baseSearchParams=new URLSearchParams(this.win.location.search),this.baseSearchParams.delete("vl"),this._updaters.low.push(this.injectBrowserSearchParams),this.player.addEventListener(t.RegisterUrlUpdater,this.onRegisterUrlUpdater),this.logger.debug("init",{player:this.player,video:this.player.video})})}}cg.controllerName="LinksController";var $n=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class ug extends mn{constructor(){super(...arguments),this.currentPitchTime=null,this.playerConfigUpdated=e=>{try{this.logger.group("debug","playerConfigUpdated").message("pitchTime",e.detail.player.config.pitchTime).end();let t=e.detail.player.config.pitchTime;this.currentPitchTime!==t&&t&&0!==t&&(this.currentPitchTime=t,this.player.removeEventListener(a.TimeupdateMs,this.currentCallback),this.currentCallback=e=>{e.detail.time>=t&&this.player.played&&(this.player.dispatchEvent(new C.TimeReached),this.player.removeEventListener(a.TimeupdateMs,this.currentCallback))},this.player.addEventListener(a.TimeupdateMs,this.currentCallback))}catch(e){this.logger.error("Failed to update pitch time",{error:e})}},this.currentCallback=()=>{}}init(){return $n(this,void 0,void 0,function*(){this.player.addEventListener(o.ConfigUpdated,this.playerConfigUpdated)})}}ug.controllerName="PitchTimeController";var Bn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class pg extends mn{constructor(){super(...arguments),this.callActionSelector=".smartplayer-scroll-event, .smartplayer-call-action, vturb-anchor-button, .smartplayer-callaction__html",this.delay=700,this.doc=document}init(){this.logger.debug("init"),this.player.config.playback.active&&(this.player.config.playback.actionAfterFinish&&"loop"===this.player.config.playback.actionAfterFinish.type&&this.setActionAfterFinishLoop(this.player.config.playback.actionAfterFinish),this.player.config.playback.scrollToActionIn)&&this.setScrollToActionIn(this.player.config.playback.scrollToActionIn)}setActionAfterFinishLoop(t){this.logger.debug("setActionAfterFinishLoop"),this.player.addEventListener(a.Ended,()=>Bn(this,void 0,void 0,function*(){var e;this.logger.info("video ended",{action:t}),this.player.controls.seek(null!=(e=null==(e=t.properties)?void 0:e.start)?e:0),yield this.player.controls.awaitPlay()}))}setScrollToActionIn(t){this.logger.info("setScrollToActionIn",{scrollToActionIn:t});let i=e=>{e.detail.time>=t&&(this.player.dispatchEvent(new n.Minimize),setTimeout(()=>{var e,t=[...Array.from(this.doc.querySelectorAll(this.callActionSelector)),...Array.from(this.player.querySelectorAll(this.callActionSelector))];0e&&!!t];var jn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class fg extends mn{hostDisconnected(){var e;null!=(e=this.resizeObserver)&&e.disconnect()}init(){return jn(this,void 0,void 0,function*(){this.logger.debug("init");var e=Vn(100,()=>{var e;this.logger.debug("resize"),this.player.requestUpdate(),this.player.dispatchEvent(new o.Resize),this.player.height=null!=(e=null==(e=this.player.player)?void 0:e.clientHeight)?e:0,this.player.width=null!=(e=null==(e=this.player.player)?void 0:e.clientWidth)?e:0});this.resizeObserver=new ResizeObserver(e),this.resizeObserver.observe(this.player.player),e()})}}fg.controllerName="ResizerController",fg.requirements=[({player:e,ready:t})=>t&&!!e];class gg extends mn{constructor(){super(...arguments),this.preloadLinks=[],this.dnsPrefetchLinks=[],this.prerenderLinks=[]}static get SPEED_CODE_DOMAINS(){return["https://scripts.converteai.net","https://images.converteai.net","https://cdn.converteai.net","https://license.vturb.com"]}static get REQUIRED_LINKS_PRELOAD_AB(){return["https://scripts.converteai.net/{accountId}/ab-test/{playerId}/player.js","https://scripts.converteai.net/lib/js/smartplayer-wc/v4/smartplayer.js"]}static get REQUIRED_LINKS_PRELOAD(){return["https://scripts.converteai.net/{accountId}/players/{playerId}/v4/embed.html","https://scripts.converteai.net/{accountId}/players/{playerId}/v4/player.js","https://scripts.converteai.net/lib/js/smartplayer-wc/v4/smartplayer.js","https://images.converteai.net/{accountId}/players/{playerId}/thumbnail.jpg","https://cdn.converteai.net/{accountId}/{videoId}/main.m3u8"]}static get REQUIRED_LINKS_DNS_PREFETCH(){return["https://cdn.converteai.net","https://scripts.converteai.net","https://images.converteai.net","https://license.vturb.com"]}init(){this.logger.debug("initializing speed code detection"),this.player.addEventListener("player:ready",()=>{this.detectSpeedCode()},{once:!0})}requiredLinksTemplate(){var e,t=!!this.player.interface.originalId;return this.logger.debug("AB test detection",{isAbTest:t,abTestId:null==(e=this.player.interface.originalId)?void 0:e.replace("ab-test-","")}),[...t?gg.REQUIRED_LINKS_PRELOAD_AB:gg.REQUIRED_LINKS_PRELOAD,...gg.REQUIRED_LINKS_DNS_PREFETCH]}detectSpeedCode(){var e;this.logger.debug("starting speed code detection"),this.player.isIframe?this.logger.debug("iframe detected, skipping speed code detection"):(this.collectHeadLinks(),e={iframe:0,initializer:"player",present:(e=this.checkSpeedCodePresence())?1:0,correct:this.validateSpeedCode(e)?1:0,extra_links:this.collectExtraLinks()},this.logger.debug("detection result",e),this.notifyResult(e),this.logger.debug("speed code detection completed",e))}collectHeadLinks(){var e=Array.from(document.head.getElementsByTagName("link"));this.preloadLinks=e.filter(e=>"preload"===e.rel),this.dnsPrefetchLinks=e.filter(e=>"dns-prefetch"===e.rel),this.prerenderLinks=e.filter(e=>"prerender"===e.rel),this.logger.debug("collected head links",{preload:this.preloadLinks.length,dnsPrefetch:this.dnsPrefetchLinks.length,prerender:this.prerenderLinks.length})}checkSpeedCodePresence(){var e=[...this.preloadLinks,...this.dnsPrefetchLinks,...this.prerenderLinks],t=e.some(e=>{let t=e.href||"";return gg.SPEED_CODE_DOMAINS.some(e=>t.includes(e))});return this.logger.debug("speed code presence check",{isPresent:t,totalLinks:e.length}),t}validateSpeedCode(e){if(!e)return this.logger.debug("speed code validation skipped - not present"),!1;let t=[...this.preloadLinks,...this.dnsPrefetchLinks,...this.prerenderLinks],i=!!this.player.interface.originalId,r=null==(e=this.player.interface.originalId)?void 0:e.replace("ab-test-","");var e=this.requiredLinksTemplate().map(e=>e.replace("{accountId}",this.player.config.oid||"").replace("{playerId}",i?r||"":this.player.config.id||"").replace("{videoId}",(null==(e=this.player.config.video)?void 0:e.id)||"")),s=(this.logger.debug("processed required links",{requiredLinks:e,isAbTest:i,abTestId:r,playerId:this.player.config.id}),e.every(r=>t.some(e=>{var e=e.href||"",t=r.split("/").filter(e=>00i.some(e=>e.includes(t)||t.includes(e)))})));return this.logger.debug("speed code validation",{isCorrect:s,requiredLinks:e.length,foundLinks:t.length,isAbTest:i}),s}collectExtraLinks(){var e=this.preloadLinks.filter(e=>{let t=e.href||"";return gg.SPEED_CODE_DOMAINS.some(e=>t.includes(e.replace("https://","")))});this.logger.debug("all vturb preload links",e);let t=!!this.player.interface.originalId,i=null==(s=this.player.interface.originalId)?void 0:s.replace("ab-test-",""),r=(t?gg.REQUIRED_LINKS_PRELOAD_AB:gg.REQUIRED_LINKS_PRELOAD).map(e=>e.replace("{accountId}",this.player.config.oid||"").replace("{playerId}",t?i||"":this.player.config.id||"").replace("{videoId}",(null==(e=this.player.config.video)?void 0:e.id)||""));this.logger.debug("required links for extra detection",{isAbTest:t,abTestId:i,playerId:this.player.config.id,requiredLinks:r});var s=e.filter(e=>{let t=e.href||"";return!r.some(e=>{e=e.split("/").filter(e=>00i.some(e=>e.includes(t)||t.includes(e)))})}),a=0e.href),allVturbLinksDetails:e.map(e=>e.href),isAbTest:t}),a?1:0}sendAnalytics(e){try{this.player.dispatchEvent(new l.Event({type:"speed_code_detected",body:{present:e.present,correct:e.correct,iframe:e.iframe,initializer:e.initializer,extra_links:e.extra_links}})),this.logger.debug("analytics event sent",e)}catch(e){this.logger.warn("failed to send analytics event",e)}}notifyResult(e){this.sendAnalytics(e),this.player&&(this.player.dispatchEvent(new CustomEvent("speed-code-detected",{detail:e})),this.logger.debug("speed code detection event dispatched on Player",e)),this.logger.debug("speed code detection event dispatched",e)}}gg.controllerName="SpeedDetectorController";let u=(e,t)=>{if(!e)return null;var i=Math.round(255*t).toString(16).padStart(2,"0");if(e.startsWith("#"))return"#"+((r=e.replace("#","").replace(/[^0-9A-Fa-f]/g,"")).length<=4?r.slice(0,3).split("").map(e=>e+e).join(""):r.slice(0,6)).padEnd(6,"0")+i;if(e.startsWith("hsl")){var r=e.match(/hsl\(([^)]+)\)/);if(r)return`hsla(${r[1]} / ${t})`}if(e.startsWith("rgb")){var s,i=e.match(/\d+/g);if(i&&3<=i.length)return[r,i,s]=i,`rgba(${r}, ${i}, ${s}, ${t})`}return e};class mg extends mn{init(){}styles(){var e;this.player.style.setProperty("--fakebar-background-color",null==(e=null==(e=this.player.config)?void 0:e.fakeBar)?void 0:e.color),this.player.style.setProperty("--fakebar-height",`${null!=(e=null==(e=this.player.config)?void 0:e.fakeBar)&&e.active?null==(e=null==(e=this.player.config)?void 0:e.fakeBar)?void 0:e.height:0}px`),this.player.style.setProperty("--resume-background-color",null==(e=null==(e=this.player.config)?void 0:e.resume)?void 0:e.backgroundColor),this.player.style.setProperty("--resume-foreground-color",null==(e=null==(e=this.player.config)?void 0:e.resume)?void 0:e.foregroundColor),this.player.style.setProperty("--style-background",null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background),this.player.style.setProperty("--style-background-100",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,1)),this.player.style.setProperty("--style-background-90",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,.9)),this.player.style.setProperty("--style-background-80",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,.8)),this.player.style.setProperty("--style-background-70",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,.7)),this.player.style.setProperty("--style-background-60",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,.6)),this.player.style.setProperty("--style-background-50",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.background,.5)),this.player.style.setProperty("--player-border-radius",`${null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.borderRadius}px`),this.player.style.setProperty("--style-background-opacity","var(--style-background-80)"),this.player.style.setProperty("--style-foreground",null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground),this.player.style.setProperty("--style-foreground-100",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,1)),this.player.style.setProperty("--style-foreground-90",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,.9)),this.player.style.setProperty("--style-foreground-80",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,.8)),this.player.style.setProperty("--style-foreground-70",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,.7)),this.player.style.setProperty("--style-foreground-60",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,.6)),this.player.style.setProperty("--style-foreground-50",u(null==(e=null==(e=this.player.config)?void 0:e.style)?void 0:e.foreground,.5)),this.player.style.setProperty("--style-foreground-opacity","var(--style-foreground-80)")}}mg.controllerName="StyleController";class vg extends fn{constructor(){super(vg.eventName)}}vg.eventName="smart-pause:paused";class yg extends fn{constructor(){super(yg.eventName)}}yg.eventName="smart-pause:resumed";let le={Paused:vg,Resumed:yg},he=()=>new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e())));var Gn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};let de=(e,...t)=>Gn(void 0,[e,...t],void 0,function*(e,t={}){if(e){var{behavior:i="smooth",offset:r=0}=t;if(!e.offsetParent)return O({delay:0,isReady:()=>!!e.offsetParent,timeout:1e4}).then(()=>de(e,t));yield he();var s=e.getBoundingClientRect(),a=window.innerHeight/2,n=s.height/2;window.scrollTo({behavior:i,left:0,top:s.top+window.scrollY-(a{this.isLocked||(this.isLocked=!0,this.captureStyles(),this.lockBodyScroll(),this.setFixedPosition(e,!0))},this.unlock=e=>{this.isLocked&&(this.isLocked=!1,this.unlockBodyScroll(),this.setFixedPosition(e,!1))},this.captureStyles=()=>{var e=getComputedStyle(document.body);this.bodySavedStyles={overflowX:e.overflowX,overflowY:e.overflowY,zIndex:e.zIndex}},this.lockBodyScroll=()=>{document.body.style.setProperty("overflow-x","hidden","important"),document.body.style.setProperty("overflow-y","hidden","important"),document.body.style.setProperty("z-index","auto","important")},this.setFixedPosition=(e,t)=>e.classList.toggle("fixed",t),this.unlockBodyScroll=()=>{document.body.style.setProperty("overflow-x",this.bodySavedStyles.overflowX||"hidden"),document.body.style.setProperty("overflow-y",this.bodySavedStyles.overflowY||"auto"),document.body.style.setProperty("z-index",this.bodySavedStyles.zIndex||"auto")}}}var Hn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})},zn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class Eg extends lg{get config(){return this.host.config.immersiveMode}get inImmersiveMode(){var e;return null!=(e=null==(e=this.host.immersiveWrapper)?void 0:e.classList.contains("immersive-mode"))&&e}get visibleRatio(){return(e=this.host.immersiveWrapper)&&({bottom:e,height:t,top:i}=e.getBoundingClientRect(),e=Math.max(0,Math.min(window.innerHeight,e)-Math.max(0,i)),0{if(!this.host.immersiveWrapper)return this.logger.error("syncImmersivePosition","immersiveWrapper not found");var i;i=this.host.immersiveWrapper,Hn(void 0,void 0,void 0,function*(){yield he();var e=i.getBoundingClientRect(),t=Math.max(0,window.innerWidth-document.documentElement.clientWidth);i.style.setProperty("--immersive-mode-scrollbar-width",t+"px"),i.style.setProperty("--immersive-mode-left",`-${e.left}px`)})},this.onWindowResize=Vn(16,()=>this.syncImmersivePosition()),this.scrollLockService=new bg,this.disableFeature=()=>{this.host.removeEventListener(a.Play,this.onVideoPlay),this.host.removeEventListener(a.Pause,this.onVideoPause),this.host.removeEventListener(le.Paused,this.onSmartPauseAction),this.host.removeEventListener(le.Resumed,this.onSmartPauseAction),this.host.removeEventListener(n.Expand,this.onFullscreenExpand),this.host.removeEventListener(n.Minimize,this.onFullscreenMinimize),this.host.removeEventListener(n.Toggle,this.onFullscreenToggle),window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("orientationchange",this.onOrientationChange),window.removeEventListener("keydown",this.onKeyDown),this.clearIgnoreNextAction(),this.exitImmersiveMode()},this.enableFeature=()=>{this.host.addEventListener(a.Play,this.onVideoPlay,{passive:!0}),this.host.addEventListener(a.Pause,this.onVideoPause,{passive:!0}),this.host.addEventListener(le.Paused,this.onSmartPauseAction,{passive:!0}),this.host.addEventListener(le.Resumed,this.onSmartPauseAction,{passive:!0}),this.host.addEventListener(n.Expand,this.onFullscreenExpand,{passive:!0}),this.host.addEventListener(n.Minimize,this.onFullscreenMinimize,{passive:!0}),this.host.addEventListener(n.Toggle,this.onFullscreenToggle,{passive:!0}),window.addEventListener("resize",this.onWindowResize,{passive:!0}),window.addEventListener("orientationchange",this.onOrientationChange,{passive:!0}),window.addEventListener("keydown",this.onKeyDown,{passive:!0})},this.isEnabled=()=>ie(this.config),this.clearIgnoreNextAction=()=>{this.ignoreNextAction=!1},this.enterImmersiveMode=()=>zn(this,void 0,void 0,function*(){this.host.immersiveWrapper&&!this.inImmersiveMode&&(this.logger.debug("Entering immersive mode"),this.host.classList.add("in-immersive-mode"),this.host.immersiveWrapper.classList.add("immersive-mode"),this.host.interface.style.setProperty("overflow","visible","important"),this.syncImmersivePosition(),this.scrollToImmersiveWrapper(),this.host.dispatchEvent(new n.Entered({type:"immersive-mode"})),this.config.disableScrolling)&&this.scrollLockService.lock(this.host.immersiveWrapper)}),this.exitImmersiveMode=()=>{this.host.immersiveWrapper&&this.inImmersiveMode&&(this.logger.debug("Exiting immersive mode"),this.host.classList.remove("in-immersive-mode"),this.host.immersiveWrapper.classList.remove("immersive-mode"),this.host.interface.style.setProperty("overflow","hidden","important"),this.scrollLockService.unlock(this.host.immersiveWrapper),this.host.dispatchEvent(new n.Exited({type:"immersive-mode"})),.42<=this.visibleRatio)&&this.scrollToImmersiveWrapper()},this.onFullscreenExpand=()=>this.enterImmersiveMode(),this.onFullscreenMinimize=()=>this.exitImmersiveMode(),this.onFullscreenToggle=()=>{this.inImmersiveMode?this.exitImmersiveMode():this.enterImmersiveMode()},this.onKeyDown=e=>{"Escape"===e.key&&this.exitImmersiveMode()},this.onOrientationChange=()=>zn(this,void 0,void 0,function*(){this.inImmersiveMode&&(this.syncImmersivePosition(),.5<=this.visibleRatio)&&this.scrollToImmersiveWrapper()}),this.onSmartPauseAction=()=>{this.logger.debug("Ignoring next action due to Smart Pause"),this.ignoreNextAction=!0},this.onVideoPause=()=>{if(this.ignoreNextAction)return this.clearIgnoreNextAction();this.config.minimizeOnPause&&this.exitImmersiveMode()},this.onVideoPlay=()=>{if(this.ignoreNextAction)return this.clearIgnoreNextAction();this.config.expandOnPlay&&this.enterImmersiveMode()},this.scrollToImmersiveWrapper=()=>de(this.host.immersiveWrapper,{behavior:"instant"}),this.syncScrollLockState=()=>{this.config.active&&this.host.immersiveWrapper&&(this.config.disableScrolling&&this.inImmersiveMode?this.scrollLockService.lock(this.host.immersiveWrapper):this.scrollLockService.unlock(this.host.immersiveWrapper))},this.trackProperties("config")}hostUpdate(e){e.has("config")&&(this.syncScrollLockState(),this.reevaluateFeatureState())}}var Kn=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class Tg extends lg{constructor(e){super(e),this.pausedBySmartPause=!1,this.disableFeature=()=>{this.pausedBySmartPause=!1,document.removeEventListener("visibilitychange",this.onVisibilityChange)},this.enableFeature=()=>{document.addEventListener("visibilitychange",this.onVisibilityChange,{passive:!0})},this.isEnabled=()=>!0===this.host.config.playback.smartPause,this.onVisibilityChange=()=>{this.host.alreadyPlayed&&(document.hidden&&!this.host.paused?this.pause():!document.hidden&&this.pausedBySmartPause&&this.play())},this.pause=()=>{this.logger.debug("Pausing video via Smart Pause"),this.pausedBySmartPause=!0,this.host.dispatchEvent(new le.Paused),this.host.controls.pause(!0)},this.play=()=>Kn(this,void 0,void 0,function*(){this.logger.debug("Resuming video via Smart Pause"),this.pausedBySmartPause=!1,this.host.dispatchEvent(new le.Resumed),yield he(),this.host.controls.play()}),this.trackProperties("config")}hostUpdate(e){e.has("config")&&this.reevaluateFeatureState()}}class wg extends fn{constructor(e){super(wg.eventName,{bubbles:!0,composed:!0,detail:e})}}wg.eventName="media-session:change-artwork";let ce={ChangeArtwork:wg};class Sg extends Mf{constructor(){super(...arguments),this.hostConnected=()=>{this.host.addEventListener(ce.ChangeArtwork,this.onUpdateArtwork),this.host.addEventListener(a.Play,this.onVideoPlay)},this.hostDisconnected=()=>{this.host.removeEventListener(ce.ChangeArtwork,this.onUpdateArtwork),this.host.removeEventListener(a.Play,this.onVideoPlay)},this.disablePlayingWidget=()=>{this.logger.info("disablePlayingWidget"),this.updateActionHandler("play",()=>{}),this.updateActionHandler("pause",()=>{}),this.updateActionHandler("stop",()=>{}),this.updateActionHandler("seekto",()=>{}),this.updateActionHandler("seekbackward",null),this.updateActionHandler("seekforward",null),this.updateActionHandler("previoustrack",null),this.updateActionHandler("nexttrack",null),this.updateActionHandler("skipad",null),this.resetVideoPosition()},this.onUpdateArtwork=e=>{try{e.stopImmediatePropagation(),null!=navigator&&navigator.mediaSession&&(this.logger.info("onUpdateArtwork",e.detail.artwork),navigator.mediaSession.metadata=new MediaMetadata({artwork:[{src:e.detail.artwork}],title:window.document.title}))}catch(e){this.logger.warn("Failed to setup media artwork",e)}},this.onVideoPlay=()=>{this.disablePlayingWidget()},this.resetVideoPosition=()=>{try{null!=navigator&&navigator.mediaSession&&navigator.mediaSession.setPositionState({duration:0,playbackRate:1,position:0})}catch(e){this.logger.warn("Failed to setup media metadata",e)}},this.updateActionHandler=(t,e)=>{try{null!=navigator&&navigator.mediaSession&&navigator.mediaSession.setActionHandler(t,e)}catch(e){this.logger.warn("Failed to setup media action: "+t,e)}}}}let ue={ArrowLeft:{action:{step:-5,type:"seek"},requiredFeatures:["rewind"]},ArrowRight:{action:{step:5,type:"seek"},requiredFeatures:["forward"]},KeyJ:{action:{step:-10,type:"seek"},requiredFeatures:["rewind"]},KeyL:{action:{step:10,type:"seek"},requiredFeatures:["forward"]},Space:{action:{type:"togglePlay"},requiredFeatures:["smallPlay","bigPlay"]}},pe=["forward","rewind","smallPlay","bigPlay"];class kg extends lg{constructor(e){super(e),this.activeShortcuts=new Map,this.disableFeature=()=>{this.host.removeEventListener("keydown",this.onKeyDown),this.host.removeEventListener(a.Play,this.onVideoPlay),this.activeShortcuts.clear()},this.enableFeature=()=>{this.syncActiveShortcuts(),this.host.addEventListener("keydown",this.onKeyDown),this.host.addEventListener(a.Play,this.onVideoPlay,{passive:!0})},this.isEnabled=()=>pe.some(e=>this.host.config.style[e]),this.handleNextStep=e=>{var t,i;this.host.video&&({currentTime:t,duration:i}=this.host.video,(i=Math.max(0,Math.min(i,t+e)))!==t)&&(this.host.controls.seek(i),this.host.dispatchEvent(0{var t;(t=document.activeElement)instanceof HTMLElement&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||!0===t.isContentEditable||""===(t=t.getAttribute("contenteditable"))||"true"===t||"plaintext-only"===t)||(t=this.activeShortcuts.get(e.code))&&(e.preventDefault(),e.stopPropagation(),this.runAction(t))},this.onVideoPlay=()=>this.host.focus({preventScroll:!0}),this.runAction=e=>"seek"===e.type?this.handleNextStep(e.step):"togglePlay"===e.type?this.host.controls.toggle():void 0,this.syncActiveShortcuts=()=>{let t=this.host.config.style;for(var e in this.activeShortcuts.clear(),ue){var i=ue[e];i.requiredFeatures.some(e=>t[e])&&this.activeShortcuts.set(e,i.action)}},this.trackProperties("config")}hostUpdate(e){e.has("config")&&(this.syncActiveShortcuts(),this.reevaluateFeatureState())}}let fe=window,ge=fe.ShadowRoot&&(void 0===fe.ShadyCSS||fe.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,me=Symbol(),ve=new WeakMap;class _g{constructor(e,t,i){if(this._$cssResult$=!0,i!==me)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let t=this.o;var i=this.t;if(ge&&void 0===t){let e=void 0!==i&&1===i.length;void 0===(t=e?ve.get(i):t)&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e)&&ve.set(i,t)}return t}toString(){return this.cssText}}let e=(r,...e)=>{e=1===r.length?r[0]:e.reduce((e,t,i)=>e+(()=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})()+r[i+1],r[0]);return new _g(e,r,me)},ye=ge?e=>e:t=>{if(!(t instanceof CSSStyleSheet))return t;{let e="";for(var i of t.cssRules)e+=i.cssText;return t=e,new _g("string"==typeof t?t:t+"",void 0,me)}},be,Ee=window,Te=Ee.trustedTypes,we=Te?Te.emptyScript:"",Se=Ee.reactiveElementPolyfillSupport,ke={toAttribute(e,t){switch(t){case Boolean:e=e?we:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let i=e;switch(t){case Boolean:i=null!==e;break;case Number:i=null===e?null:Number(e);break;case Object:case Array:try{i=JSON.parse(e)}catch(e){i=null}}return i}},_e=(e,t)=>t!==e&&(t==t||e==e),Le={attribute:!0,type:String,converter:ke,reflect:!1,hasChanged:_e},Ae="finalized";class Lg extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!=(t=this.h)?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();let i=[];return this.elementProperties.forEach((e,t)=>{e=this._$Ep(t,e);void 0!==e&&(this._$Ev.set(e,t),i.push(e))}),i}static createProperty(e,t=Le){var i;t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),t.noAccessor||this.prototype.hasOwnProperty(e)||(i="symbol"==typeof e?Symbol():"__"+e,void 0!==(i=this.getPropertyDescriptor(e,i,t))&&Object.defineProperty(this.prototype,e,i))}static getPropertyDescriptor(i,r,s){return{get(){return this[r]},set(e){var t=this[i];this[r]=e,this.requestUpdate(i,t,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||Le}static finalize(){if(this.hasOwnProperty(Ae))return!1;this[Ae]=!0;let e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(var i of t)this.createProperty(i,e[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){var t=[];if(Array.isArray(e)){var i=new Set(e.flat(1/0).reverse());for(let e of i)t.unshift(ye(e))}else void 0!==e&&t.push(ye(e));return t}static _$Ep(e,t){t=t.attribute;return!1===t?void 0:"string"==typeof t?t:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null!=(e=this.constructor.h)&&e.forEach(e=>e(this))}addController(e){var t;(null!=(t=this._$ES)?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&null!=(t=e.hostConnected)&&t.call(e)}removeController(e){var t;null!=(t=this._$ES)&&t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])})}createRenderRoot(){var r,e,t=null!=(t=this.shadowRoot)?t:this.attachShadow(this.constructor.shadowRootOptions);return r=t,e=this.constructor.elementStyles,ge?r.adoptedStyleSheets=e.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet):e.forEach(e=>{var t=document.createElement("style"),i=fe.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=e.cssText,r.appendChild(t)}),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null!=(e=this._$ES)&&e.forEach(e=>{var t;return null==(t=e.hostConnected)?void 0:t.call(e)})}enableUpdating(e){}disconnectedCallback(){var e;null!=(e=this._$ES)&&e.forEach(e=>{var t;return null==(t=e.hostDisconnected)?void 0:t.call(e)})}attributeChangedCallback(e,t,i){this._$AK(e,i)}_$EO(e,t,i=Le){var r,s=this.constructor._$Ep(e,i);void 0!==s&&!0===i.reflect&&(r=(void 0!==(null==(r=i.converter)?void 0:r.toAttribute)?i.converter:ke).toAttribute(t,i.type),this._$El=e,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$El=null)}_$AK(e,i){var r=this.constructor,s=r._$Ev.get(e);if(void 0!==s&&this._$El!==s){let e=r.getPropertyOptions(s),t="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null==(r=e.converter)?void 0:r.fromAttribute)?e.converter:ke;this._$El=s,this[s]=t.fromAttribute(i,e.type),this._$El=null}}requestUpdate(e,t,i){let r=!0;void 0!==e&&(((i=i||this.constructor.getPropertyOptions(e)).hasChanged||_e)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===i.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,i))):r=!1),!this.isUpdatePending&&r&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}var e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(this.isUpdatePending){this.hasUpdated,this._$Ei&&(this._$Ei.forEach((e,t)=>this[t]=e),this._$Ei=void 0);let e=!1;var i=this._$AL;try{(e=this.shouldUpdate(i))?(this.willUpdate(i),null!=(t=this._$ES)&&t.forEach(e=>{var t;return null==(t=e.hostUpdate)?void 0:t.call(e)}),this.update(i)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(i)}}willUpdate(e){}_$AE(e){var t;null!=(t=this._$ES)&&t.forEach(e=>{var t;return null==(t=e.hostUpdated)?void 0:t.call(e)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach((e,t)=>this._$EO(t,this[t],e)),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}Lg[Ae]=!0,Lg.elementProperties=new Map,Lg.elementStyles=[],Lg.shadowRootOptions={mode:"open"},null!=Se&&Se({ReactiveElement:Lg}),(null!=(be=Ee.reactiveElementVersions)?be:Ee.reactiveElementVersions=[]).push("1.6.3");let Re=window,Ie=Re.trustedTypes,Pe=Ie?Ie.createPolicy("lit-html",{createHTML:e=>e}):void 0,Ce="$lit$",xe=`lit$${(Math.random()+"").slice(9)}$`,De="?"+xe,Oe=`<${De}>`,Me=document,Fe=()=>Me.createComment(""),Ne=e=>null===e||"object"!=typeof e&&"function"!=typeof e,Ue=Array.isArray,$e=e=>Ue(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]),Be="[ \t\n\f\r]",Ve=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,je=/-->/g,Ge=/>/g,He=RegExp(`>|${Be}(?:([^\\s"'>=/]+)(${Be}*=${Be}*(?:[^ \r"'\`<>=]|("|')|))|$)`,"g"),ze=/'/g,Ke=/"/g,We=/^(?:script|style|textarea|title)$/i,Ye=i=>(e,...t)=>({_$litType$:i,strings:e,values:t}),p=Ye(1),qe=(Ye(2),Symbol.for("lit-noChange")),f=Symbol.for("lit-nothing"),Xe=new WeakMap,Qe=Me.createTreeWalker(Me,129,null,!1);function Wn(e,t){if(Array.isArray(e)&&e.hasOwnProperty("raw"))return void 0!==Pe?Pe.createHTML(t):t;throw Error("invalid template strings array")}let Ze=(n,e)=>{let t=n.length-1,o=[],l,h=2===e?"":"",d=Ve;for(let a=0;a"===i[0]?(d=null!=l?l:Ve,r=-1):void 0===i[1]?r=-2:(r=d.lastIndex-i[2].length,t=i[1],d=void 0===i[3]?He:'"'===i[3]?Ke:ze):d===Ke||d===ze?d=He:d===je||d===Ge?d=Ve:(d=He,l=void 0);var c=d===He&&n[a+1].startsWith("/>")?" ":"";h+=d===Ve?e+Oe:0<=r?(o.push(t),e.slice(0,r)+Ce+e.slice(r)+xe+c):e+xe+(-2===r?(o.push(void 0),a):c)}return[Wn(n,h+(n[t]||"")+(2===e?"":"")),o]};class Ag{constructor({strings:e,_$litType$:t},i){var r;this.parts=[];let s=0,a=0;var n=e.length-1,o=this.parts,[e,l]=Ze(e,t);if(this.el=Ag.createElement(e,i),Qe.currentNode=this.el.content,2===t){let e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(r=Qe.nextNode())&&o.length{var r,s=null!=(s=null==i?void 0:i.renderBefore)?s:t;let a=s._$litPart$;if(void 0===a){let e=null!=(r=null==i?void 0:i.renderBefore)?r:null;s._$litPart$=a=new Ig(t.insertBefore(Fe(),e),e,void 0,null!=i?i:{})}return a._$AI(e),a},tt,it;class vn extends Lg{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e,t=super.createRenderRoot();return null==(e=this.renderOptions).renderBefore&&(e.renderBefore=t.firstChild),t}update(e){var t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=et(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null!=(e=this._$Do)&&e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null!=(e=this._$Do)&&e.setConnected(!1)}render(){return qe}}vn.finalized=!0,vn._$litElement$=!0,null!=(tt=globalThis.litElementHydrateSupport)&&tt.call(globalThis,{LitElement:vn}),null!=(qn=globalThis.litElementPolyfillSupport)&&qn({LitElement:vn}),(null!=(it=globalThis.litElementVersions)?it:globalThis.litElementVersions=[]).push("3.3.3"),p` `,p` `;let rt=p` `,st=p` `,at=p` `,nt=p` `,ot=p` `,lt=p` `,ht=(p` `,p` `,p` `),dt=p` `,ct=p` `,ut=p` `,pt=p` `,ft=p` `,gt=p` `,mt=p``,vt=p``,yt=p` `,bt=p` `,Et=p` `,Tt=(qn=e=>e||(null!==(e=new URLSearchParams(window.location.search)).get("vturbMode")?e.get("vturbMode"):"closed"),s=>e=>{var t,i,r;return"function"!=typeof e?(t=s,{kind:r,elements:i}=e,{kind:r,elements:i,finisher(e){customElements.define(t,e)}}):(r=e,customElements.define(s,r),r)});function ja(s){return(e,t)=>{return void 0!==t?void e.constructor.createProperty(t,s):(i=s,"method"!==(r=e).kind||!r.descriptor||"value"in r.descriptor?{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:r.key,initializer(){"function"==typeof r.initializer&&(this[r.key]=r.initializer.call(this))},finisher(e){e.createProperty(r.key,i)}}:{...r,finisher(e){e.createProperty(r.key,i)}});var i,r}}function Ga(e){return ja({...e,state:!0})}let wt=({finisher:s,descriptor:a})=>(i,t)=>{var r;if(void 0===t){let t=null!=(r=i.originalKey)?r:i.key,e=null!=a?{kind:"method",placement:"prototype",key:t,descriptor:a(i.key)}:{...i,key:t};return null!=s&&(e.finisher=function(e){s(e,t)}),e}{let e=i.constructor;void 0!==a&&Object.defineProperty(i,t,a(t)),null!=s&&s(e,t)}};function Ha(r,t){return wt({descriptor:e=>{var i={get(){var e;return null!=(e=null==(e=this.renderRoot)?void 0:e.querySelector(r))?e:null},enumerable:!0,configurable:!0};if(t){let t="symbol"==typeof e?Symbol():"__"+e;i.get=function(){var e;return void 0===this[t]&&(this[t]=null!=(e=null==(e=this.renderRoot)?void 0:e.querySelector(r))?e:null),this[t]}}return i}})}function Xn(t){return wt({descriptor:e=>({async get(){var e;return await this.updateComplete,null==(e=this.renderRoot)?void 0:e.querySelector(t)},enumerable:!0,configurable:!0})})}null!=(za=window.HTMLSlotElement)&&za.prototype.assignedElements;var za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var t=()=>{this.requestUpdate()};this.player.addEventListener(e.toString(),t),this._reRenderOn.push({event:e,fn:t})})}disconnectedCallback(){super.disconnectedCallback(),this.logger.debug("disconnectedCallback",{player:this.player}),this._reRenderOn.forEach(({event:e,fn:t})=>{this.player.removeEventListener(e.toString(),t)})}}Mg.componentName="Base",Mg.reRenderOn=[],Mg.styles=[],za([ja({type:Object})],Mg.prototype,"player",void 0);class yn extends Mg{createRenderRoot(){return this}}yn.componentName="Playerable";class Fg extends Mg{}function Ka(t){return function(e){return customElements.get(t)||Tt(t)(e),e}}Fg.componentName="PlayerableShadow",Fg.shadowRootOptions={mode:qn()};let St={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},kt=t=>(...e)=>({_$litDirective$:t,values:e});class Ng{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}let _t=kt(class extends Ng{constructor(e){if(super(e),e.type!==St.ATTRIBUTE||"class"!==e.name||2<(null==(e=e.strings)?void 0:e.length))throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(e,[t]){var i,r,s;if(void 0===this.it){for(var a in this.it=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter(e=>""!==e))),t)!t[a]||null!=(i=this.nt)&&i.has(a)||this.it.add(a);return this.render(t)}let n=e.element.classList;for(s in this.it.forEach(e=>{e in t||(n.remove(e),this.it.delete(e))}),t){let e=!!t[s];e===this.it.has(s)||null!=(r=this.nt)&&r.has(s)||(e?(n.add(s),this.it.add(s)):(n.remove(s),this.it.delete(s)))}return qe}});var za=e`.bezel{bottom:0;color:var(--bezel-color);display:var(--bezel-display);left:0;pointer-events:none;position:absolute;right:0;top:0;transform:translateY(0);transition:transform var(--base-transition)}.show-controls .bezel{transform:translateY(calc(-50% - var(--control-padding)*2/2 - .75rem))}.bezel__icon{background:var(--bezel-background-color);border-radius:var(--bezel-border-radius);box-sizing:border-box;fill:var(--bezel-icon-fill);height:var(--bezel-icon-size);left:50%;margin:calc(var(--bezel-icon-size)/-2) 0 0 calc(var(--bezel-icon-size)/-2);opacity:0;padding:var(--bezel-icon-padding);pointer-events:none;position:absolute;top:50%;width:var(--bezel-icon-size)}.bezel__icon svg{height:100%;width:100%}.bezel__icon .bezel__step{color:var(--bezel-color);display:grid;font-size:.825em;font-weight:600;inset:var(--bezel-icon-padding);line-height:1;place-items:center;pointer-events:none;position:absolute}.bezel__icon.bezel-transition{animation:bezel-hide var(--bezel-animation-duration) var(--bezel-animation-timing)}@keyframes bezel-hide{0%{opacity:var(--bezel-opacity-start);transform:scale(var(--bezel-scale-start))}to{opacity:var(--bezel-opacity-end);transform:scale(var(--bezel-scale-end))}}.bezel__loading{left:50%;max-width:var(--bezel-loading-max-width);min-width:var(--bezel-loading-min-width);position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--bezel-loading-width)}.bezel__loading--hidden{display:none}.bezel__loading svg{height:100%;width:100%}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3Qn(this,void 0,void 0,function*(){this.logger.debug("animateBezel"),(yield this.iconElement).classList.add("bezel-transition")}),this.onAnimationEnd=()=>Qn(this,void 0,void 0,function*(){this.logger.debug("onAnimationEnd"),(yield this.iconElement).classList.remove("bezel-transition")}),this.onForward=e=>{this.step=e.detail.step,this.switch("forward"),this.logger.debug("onForward"),this.animateBezel()},this.onPause=()=>{this.step=0,this.logger.debug("onPause"),this.switch("pause"),this.animateBezel()},this.onPlay=()=>{this.step=0,this.logger.debug("onPlay"),this.switch("play"),this.animateBezel()},this.onCanPlay=()=>{this.logger.debug("onCanPlay"),this.loading=!1},this.onRewind=e=>{this.step=e.detail.step,this.switch("rewind"),this.logger.debug("onRewind"),this.animateBezel()},this.onWaiting=()=>{var e;this.logger.debug("onWaiting"),this.loading=!0;let t=(null==(e=this.player.video)?void 0:e.currentTime)||0,i=()=>{var e;this.loading&&(null!=(e=this.player.video)&&e.currentTime&&this.player.video.currentTime>t?(this.logger.debug("onWaiting: loading false"),this.loading=!1):setTimeout(i,this.waitingTimeoutMS))};setTimeout(i,this.waitingTimeoutMS)}}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.Canplay,this.onCanPlay),this.player.addEventListener(a.Waiting,this.onWaiting),this.player.addEventListener(a.Play,this.onPlay),this.player.addEventListener(a.Pause,this.onPause),this.player.addEventListener(a.Forward,this.onForward),this.player.addEventListener(a.Rewind,this.onRewind)}disconnectedCallback(){super.disconnectedCallback(),this.player.removeEventListener(a.Canplay,this.onCanPlay),this.player.removeEventListener(a.Waiting,this.onWaiting),this.player.removeEventListener(a.Play,this.onPlay),this.player.removeEventListener(a.Pause,this.onPause),this.player.removeEventListener(a.Forward,this.onForward),this.player.removeEventListener(a.Rewind,this.onRewind)}render(){var e=_t({"bezel__loading--hidden":!this.loading});return p`
${this.icon} ${this.step?p`${this.step}`:""} ${st}
`}switch(e){switch(e){case"forward":this.icon=dt;break;case"pause":this.icon=nt;break;case"play":this.icon=ot;break;case"rewind":this.icon=ut;break;default:return}}},g=(Lt.componentName="Bezel",Lt.styles=[za],Wa([ja({type:Boolean})],Lt.prototype,"_testing",void 0),Wa([Ga()],Lt.prototype,"step",void 0),Wa([Ga()],Lt.prototype,"icon",void 0),Wa([Xn(".bezel__icon")],Lt.prototype,"iconElement",void 0),Wa([Ga()],Lt.prototype,"loading",void 0),Lt=Wa([Ka("vturb-bezel")],Lt),kt(class extends Ng{constructor(e){if(super(e),e.type!==St.ATTRIBUTE||"style"!==e.name||2<(null==(e=e.strings)?void 0:e.length))throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(r){return Object.keys(r).reduce((e,t)=>{var i=r[t];return null==i?e:e+`${t=t.includes("-")?t:t.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${i};`},"")}update(e,[i]){let r=e.element.style;if(void 0===this.ht){for(var t in this.ht=new Set,i)this.ht.add(t);return this.render(i)}for(var s in this.ht.forEach(e=>{null==i[e]&&(this.ht.delete(e),e.includes("-")?r.removeProperty(e):r[e]="")}),i){let t=i[s];if(null!=t){this.ht.add(s);let e="string"==typeof t&&t.endsWith(" !important");s.includes("-")||e?r.setProperty(s,e?t.slice(0,-11):t,e?"important":""):r[s]=t}}return qe}})),At=(za=e`.player .bigplay{background-color:var(--bigplay-background);border:none;border-radius:var(--bigplay-border-radius);bottom:0;box-sizing:border-box;cursor:pointer;height:var(--bigplay-base-size);left:50%;opacity:var(--bigplay-opacity);outline:none;padding:var(--bigplay-padding-y) var(--bigplay-padding-x);position:absolute;top:50%;transform:translate(-50%,-50%);transition:transform var(--base-transition);width:var(--bigplay-base-size);z-index:10}.player .bigplay.hidden{display:none}.player .bigplay svg{cursor:pointer;height:100%;width:100%}.player.m-w-360 .bigplay{height:var(--bigplay-size-360);width:var(--bigplay-size-360)}.player.m-w-480 .bigplay{height:var(--bigplay-size-480);width:var(--bigplay-size-480)}.player.m-w-550 .bigplay{height:var(--bigplay-size-550);width:var(--bigplay-size-550)}.player.in-resume .bigplay,.player.smartplay .bigplay{display:none!important}.player.show-controls .bigplay{transform:translate(-50%,calc(-50% - var(--control-padding)*2/2 - .75rem))}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.dispatchEvent(new h.Items({items:{bigplay:e}}))},this.togglePlay=e=>{try{e.preventDefault(),e.stopPropagation(),this.player.controls.toggle(),this.player.controllers.bar.show(),this.player.dispatchEvent(new h.BarCloser),this.logger.debug("Toggle play clicked",{ev:e})}catch(e){this.logger.error("Error toggling play",e)}}}render(){var e=this.player.played,t=this.player.controllers.blockers.anyBlocker("resume","smartAutoPlay");if(e||t)return this.sendControlsEvent(!1),null;this.sendControlsEvent(!0);e=g({backgroundColor:this.player.config.style.background,fill:this.player.config.style.foreground});return p`
${ot}
`}}),Rt=(At.componentName="BigPlay",At.reRenderOn=[a.Pause,a.Play],At.styles=za,At=Wa([Ka("vturb-bigplay")],At),Va).I,It=()=>document.createComment(""),Pt=(r,e,s)=>{var a,n=r._$AA.parentNode,o=void 0===e?r._$AB:e._$AA;if(void 0===s){let e=n.insertBefore(It(),o),t=n.insertBefore(It(),o);s=new Rt(e,t,r,r.options)}else{let t=s._$AB.nextSibling,i=s._$AM,e=i!==r;if(e){let e;null!=(a=s._$AQ)&&a.call(s,r),s._$AM=r,void 0!==s._$AP&&(e=r._$AU)!==i._$AU&&s._$AP(e)}if(t!==o||e){let e=s._$AA;for(;e!==t;){var l=e.nextSibling;n.insertBefore(e,o),e=l}}}return s},Ct=(e,t,i=e)=>(e._$AI(t,i),e),xt={},Dt=e=>{var t;null!=(t=e._$AP)&&t.call(e,!1,!0);let i=e._$AA;for(var r=e._$AB.nextSibling;i!==r;){let e=i.nextSibling;i.remove(),i=e}},Ot=(t,i,r)=>{var s=new Map;for(let e=i;e<=r;e++)s.set(t[e],e);return s},Mt=kt(class extends Ng{constructor(e){if(super(e),e.type!==St.CHILD)throw Error("repeat() can only be used in text expressions")}ct(t,e,i){let r;void 0===i?i=e:void 0!==e&&(r=e);var s=[],a=[];let n=0;for(let e of t)s[n]=r?r(e,n):n,a[n]=i(e,n),n++;return{values:a,keys:s}}render(e,t,i){return this.ct(e,t,i).values}update(i,[e,t,r]){var s=i._$AH,{values:a,keys:n}=this.ct(e,t,r);if(!Array.isArray(s))return this.ut=n,a;var o,l=null!=(e=this.ut)?e:this.ut=[],h=[];let d,c,u=0,p=s.length-1,f=0,g=a.length-1;for(;u<=p&&f<=g;)if(null===s[u])u++;else if(null===s[p])p--;else if(l[u]===n[f])h[f]=Ct(s[u],a[f]),u++,f++;else if(l[p]===n[g])h[g]=Ct(s[p],a[g]),p--,g--;else if(l[u]===n[g])h[g]=Ct(s[u],a[g]),Pt(i,h[g+1],s[u]),u++,g--;else if(l[p]===n[f])h[f]=Ct(s[p],a[f]),Pt(i,s[u],s[p]),p--,f++;else if(void 0===d&&(d=Ot(n,f,g),c=Ot(l,u,p)),d.has(l[u]))if(d.has(l[p])){let e=c.get(n[f]),t=void 0!==e?s[e]:null;null===t?(o=Pt(i,s[u]),Ct(o,a[f]),h[f]=o):(h[f]=Ct(t,a[f]),Pt(i,s[u],t),s[e]=null),f++}else Dt(s[p]),p--;else Dt(s[u]),u++;for(;f<=g;){var m=Pt(i,h[g+1]);Ct(m,a[f]),h[f++]=m}for(;u<=p;){var v=s[u++];null!==v&&Dt(v)}return this.ut=n,[t,r=xt]=[i,h],t._$AH=r,qe}});class Ug{constructor(e,t){this.document=e,this.player=t,this.containers=new Map}getContainer(e){var t;return this.containers.has(e)?this.containers.get(e):((t=this.document.createElement("div")).classList.add("vturb-light-dom-inject"),t.setAttribute("slot",e),this.containers.set(e,t),t)}inject(e,t){this.player.interface&&(t=this.getContainer(t),et(e,t),this.player.interface.appendChild(t))}destroy(){var e;null!=(e=this.player)&&e.interface&&this.containers.forEach((e,t)=>{try{this.player.interface.removeChild(e),this.containers.delete(t)}catch(e){this.player.logger.warn("Error removing light dom container",e)}})}}za=e`.callaction__slot,vturb-call-action,vturb-call-action-v2{display:block}.callaction__slot--lg{font-size:var(--anchor-button-font-size-lg)}.callaction__slot--md{font-size:var(--anchor-button-font-size-md)}.callaction__slot--sm{font-size:var(--anchor-button-font-size-sm)}.callaction--outside{align-items:center;display:flex;flex-direction:column;font-size:var(--anchor-button-base-font-size);justify-content:center}.callaction--outside .callaction__slot:not(.callaction__slot--html){margin:var(--callaction-button-margin) 0}.callaction--inside{font-size:var(--anchor-button-base-font-size);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:var(--callaction-index)}.callaction--inside .callaction__slot{position:absolute}.callaction--inside .callaction__slot--tl{left:var(--callaction-button-margin);top:var(--callaction-button-margin)}.callaction--inside .callaction__slot--tc{left:50%;top:var(--callaction-button-margin);transform:translateX(-50%)}.callaction--inside .callaction__slot--tr{right:var(--callaction-button-margin);top:var(--callaction-button-margin)}.callaction--inside .callaction__slot--cl{left:var(--callaction-button-margin);top:50%;transform:translateY(-50%)}.callaction--inside .callaction__slot--cc{left:50%;top:50%;transform:translate(-50%,-50%)}.callaction--inside .callaction__slot--cr{right:var(--callaction-button-margin);top:50%;transform:translateY(-50%)}.callaction--inside .callaction__slot--bl{bottom:var(--callaction-button-margin);left:var(--callaction-button-margin)}.callaction--inside .callaction__slot--bc{bottom:var(--callaction-button-margin);left:50%;transform:translateX(-50%)}.callaction--inside .callaction__slot--br{bottom:var(--callaction-button-margin);right:var(--callaction-button-margin)}`;let Ft=e=>(e instanceof HTMLInputElement||e instanceof HTMLButtonElement)&&"submit"===e.type,Nt=[".smartplayer-ignore-click-event","vturb-smartplayer","vturb-anchor-button","vturb-custom-html"],Ut=["mousedown","touchstart","mouseover"];class $g{get hasHighestPriority(){return 0===this.getPriority()}constructor(e,t){this.injector=e,this.getPriority=t,this.listen=()=>{Ut.forEach(e=>window.addEventListener(e,this.onTrackableInteraction))},this.unlisten=()=>{Ut.forEach(e=>window.removeEventListener(e,this.onTrackableInteraction))},this.findClosestClickable=e=>{try{for(;e;){if(["A","BUTTON","INPUT"].includes(e.tagName)){if("A"===e.tagName&&e.hasAttribute("href"))return e;if(Ft(e)&&e.form)return e}e=e.parentElement}return null}catch(e){return this.logger.error("Error finding clickable parent",e),null}},this.injectTrackingParams=(t,e)=>{try{return this.injector(t,e)}catch(e){return this.logger.warn("Error updating URL: "+t,{error:e}),t}},this.onTrackableInteraction=e=>{try{var t;this.hasHighestPriority&&e.target instanceof HTMLElement&&(t=this.findClosestClickable(e.target))&&!this.shouldIgnoreElement(t)&&(t instanceof HTMLAnchorElement?this.trackingAnchorElement(t):Ft(t)&&this.trackingFormElement(t))}catch(e){this.logger.error("Error handling url param injection event",e)}},this.shouldIgnoreElement=t=>Nt.some(e=>ne(t,e)),this.trackingAnchorElement=t=>{var e=t.getAttribute("href");if(e&&!e.startsWith("#")&&!e.startsWith("javascript:"))try{var i=window.location.href.split("#")[0];e.split("#")[0]!==i&&(t.href=this.injectTrackingParams(e,t))}catch(e){this.logger.warn(`Skipping link element due to error: ${e}, element: `+t)}},this.trackingFormElement=e=>{var t;if(null==(t=e.form)||!t.action)return this.logger.warn("Form element has no action",{element:e});e.form.action=this.injectTrackingParams(e.form.action,e)},this.logger=new gn(this.constructor.name)}}let $t=(e=0)=>5*Math.ceil(Math.floor(e)/5),Bt=["cmc_redir"];class Bg extends mn{constructor(e){super(e),this.baseSearchParams=new URLSearchParams,this.currentHeadline=null,this.currentSmartAutoPlay=null,this.currentTurboSpeed=null,this.changeHeadline=e=>{this.currentHeadline=e.detail.headline?""+e.detail.headline.number:null,this.dispatchMessageToParent()},this.changeSmartAutoPlay=e=>{this.currentSmartAutoPlay=""+e.detail.autoplay.number,this.dispatchMessageToParent()},this.changeTurboSpeed=e=>{this.currentTurboSpeed=e.detail.speed,this.dispatchMessageToParent()},this.dispatchMessageToParent=()=>{this.player.dispatchEvent(new t.Update({key:this.key}))},this.redirectionParamUpdater=(t,i)=>{try{this.logger.debug("Redirect URL Param Updater",{key:i,base:t.toString()});let e=t.searchParams.get(i);e&&((e.includes("%2F")||e.includes("%3A"))&&(e=decodeURIComponent(e)),new URL(e),t.searchParams.set(i,encodeURIComponent(this.urlUpdater(e))))}catch(e){this.logger.error("Error updating URL",{error:e})}},this.urlUpdater=(i,e)=>{try{let t=new URL(i,window.location.href);return this.config.conversion.forEach(e=>{t.searchParams.set(e,this.key)}),Bt.forEach(e=>this.redirectionParamUpdater(t,e)),this.logger.debug("URL Updater",{url:t.toString()}),t.toString()}catch(e){return this.logger.error("Error updating URL",{error:e}),i}},this.urlParamInjector=new $g(this.urlUpdater,()=>this.player.interface.priority)}get key(){let e,t="",i="",r="";return this.currentTurboSpeed&&(t="_t-"+parseInt(""+10*this.currentTurboSpeed,10)),null!=(e=this.config.headlines)&&e.active&&this.currentHeadline&&(i="_h-"+this.currentHeadline),this.currentSmartAutoPlay&&(r="_s-"+this.currentSmartAutoPlay),`v3_${this.player.controllers.analytics.sessionId}_${this.config.id}_`+this.lastTime+t+i+r}get lastTime(){var e,t;try{var i,{maxDeviceWatchedTime:r,maxSessionWatchedTime:s}=this.player.controllers.analytics,a=r||s||0;return this.player.controllers.blockers.noneBlocker("resume","smartAutoPlay")?(i=$t(null!=(t=null==(e=this.player.video)?void 0:e.currentTime)?t:0),Math.max(i,a)):a}catch(e){return this.logger.error("Error getting last time",{error:e}),0}}hostConnected(){super.hostConnected(),this.logger.debug("ConversionTrackingController: host connected"),this.player.addEventListener(Z.Chosen,this.changeHeadline),this.player.addEventListener(s.Selected,this.changeSmartAutoPlay),this.player.addEventListener(ee.SpeedChanged,this.changeTurboSpeed),this.player.addEventListener(o.Ready,()=>{var e;this.logger.debug("ConversionTrackingController: player ready"),null!=(e=this.config.conversion)&&e.length&&(this.logger.info("ConversionTrackingController: host connected, conversion tracking active"),this.setup(),this.player.dispatchEvent(new t.Enabled))})}hostDisconnected(){this.logger.debug("ConversionTrackingController: host disconnected"),this.player.dispatchEvent(new t.Disabled),this.player.removeEventListener(Z.Chosen,this.changeHeadline),this.player.removeEventListener(s.Selected,this.changeSmartAutoPlay),this.player.removeEventListener(ee.SpeedChanged,this.changeTurboSpeed),this.player.removeEventListener(a.Ended,this.dispatchMessageToParent),this.urlParamInjector.unlisten()}init(){this.logger.debug("ConversionTrackingController: init"),this.player.dispatchEvent(new t.RegisterUrlUpdater({priority:Sn.HIGH,updater:this.urlUpdater}))}setup(){this.logger.debug("ConversionTrackingController: setup",this.key),this.player.addEventListener(a.Ended,this.dispatchMessageToParent),this.urlParamInjector.listen(),this.dispatchMessageToParent()}}Bg.controllerName="ConversionTrackingController",Bg.requirements=[({ready:e,video:t})=>!!e&&!!t];var Zn=function(e,t,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e===t&&r:t.has(e))return"m"===i?r:"a"===i?r.call(e):r?r.value:t.get(e);throw new TypeError("Cannot read private member from an object whose class did not declare it")};class Vg{constructor(e){this.host=e,to.set(this,new Map),this.host.addController(this)}hostConnected(){Zn(this,to,"f").clear()}hostDisconnected(){Zn(this,to,"f").clear()}track(i){this.host.callActionsByType.forEach(e=>{var t=this.host.activeItems.has(e.id);return t&&!Zn(this,to,"f").has(e.id)?(Zn(this,to,"f").set(e.id,e),this.host.player.dispatchEvent(new l.Event({type:"cta_view",body:{cta_version:this.host.version,cta_id:e.id,time:$t(i)}}))):!t&&Zn(this,to,"f").has(e.id)?(Zn(this,to,"f").delete(e.id),this.host.player.dispatchEvent(new l.Event({type:"cta_hide",body:{cta_version:this.host.version,cta_id:e.id,time:$t(i)}}))):void 0})}}var Jn,eo,to=new WeakMap,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.alreadyPlayed&&this.player.video&&(this.injectInitialElements(),this.changeActiveItemsByTime(this.player.video.currentTime))},this.onTimeUpdate=e=>{e=e.detail.time;this.changeActiveItemsByTime(e)}}get version(){return 1}static shouldLoad(e,t){return e.callActions.active&&0t.includes(e.type))}get callActions(){var e;return 1===(null==(e=null==(e=null==(e=this.player)?void 0:e.config)?void 0:e.callActions)?void 0:e.version)&&(null==(e=null==(e=null==(e=this.player)?void 0:e.config)?void 0:e.callActions)?void 0:e.items)||[]}get callActionsByType(){return this.callActions.filter(e=>this.types.includes(e.type))}get callActionPositionType(){return this.types.includes("inner_button")?"inside_video":"outside_video"}connectedCallback(){super.connectedCallback(),this.lightDomInjector=new Ug(this.doc,this.player),this.injectInitialElements(),setTimeout(()=>{this.player.dispatchEvent(new r.Connected({version:1,items:this.callActionsByType,type:this.callActionPositionType})),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.addEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated)},eo.DELAY_AFTER_PLAY)}disconnectedCallback(){var e;super.disconnectedCallback(),this.player.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.removeEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated),this.player.dispatchEvent(new r.Disconnected({version:1})),null!=(e=this.lightDomInjector)&&e.destroy(),this.destroyed=!0}getItems(e){if(this.player.controllers.blockers.anyBlocker("smartAutoPlay","resume"))return[];let t=Math.floor(e);return this.callActionsByType.filter(e=>t>=e.range.start&&t<=e.range.finish)}changeActiveItemsByTime(e){try{var t=[...this.activeItems.values()],i=this.getItems(e);In(t,i)||(this.activeItems=new Map(i.map(e=>[e.id,e])),this.player.dispatchEvent(new r.CurrentActiveItems({items:i,version:1,type:this.callActionPositionType})),io(this,Jn,"f").track(e))}catch(e){this.logger.error("Error updating active items by time",e)}}createCTAIdentifier(e){return"callaction-button-"+e.id}createButton(e){var t=g({"--anchor-button-background-color":e.colors.background,"--anchor-button-background-color-hover":e.colors.backgroundHover,"--anchor-button-color":e.colors.text,"--anchor-button-color-hover":e.colors.textHover}),i=this.createCTAIdentifier(e);return{button:p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.logger} content=${e.content} href=${e.link} id=${i} size=${e.size} style=${t} @connected=${()=>this.player.dispatchEvent(new n.Minimize)} > `,id:i}}createCustomHtml(e){var t,i=this.createCTAIdentifier(e);return{customHtml:p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} id=${i} class="smartplayer-callaction__html" @connected=${()=>this.player.dispatchEvent(new n.Minimize)} > `,id:i}}createCallActionSlot(e){var t=this.createCTAIdentifier(e),i=g({display:this.activeItems.has(e.id)?"block":"none"}),r=new Map;return"below_button"!==e.type&&"inner_button"!==e.type||r.set("callaction__slot--"+e.size,!0),"inner_button"===e.type&&r.set("callaction__slot--"+(e.position||"tc"),!0),"custom_html"===e.type&&r.set("callaction__slot--html",!0),p` `}injectInitialElements(){this.callActionsByType.forEach(e=>{var t,i,r;"below_button"!==e.type||this.player.isIframe||({button:t,id:i}=this.createButton(e),null!=(r=this.lightDomInjector)&&r.inject(t,i)),"custom_html"!==e.type||this.player.isIframe||({customHtml:r,id:t}=this.createCustomHtml(e),null!=(i=this.lightDomInjector)&&i.inject(r,t)),"inner_button"===e.type&&({button:i,id:r}=this.createButton(e),null!=(t=this.lightDomInjector))&&t.inject(i,r)})}render(){var e;return this.destroyed?p``:(e=this.types.includes("inner_button")?"inside":"outside",p`
${Mt(this.activeItems.values(),e=>e.id,e=>this.createCallActionSlot(e))}
`)}},Vt=(Jn=new WeakMap,m.componentName="CallAction",m.DELAY_AFTER_PLAY=200,m.styles=[za],Wa([Ga()],m.prototype,"activeItems",void 0),Wa([Ga()],m.prototype,"destroyed",void 0),Wa([ja({type:Array})],m.prototype,"types",void 0),m=eo=Wa([Ka("vturb-call-action")],m),e=>{var t,i;null!=e&&e.family&&null!=e&&e.embedLink&&(t="vturb-typography-font-"+e.family.toLowerCase().replace(/\W+/g,"-"),document.getElementById(t)||((i=document.createElement("link")).id=t,i.setAttribute("href",e.embedLink),i.setAttribute("rel","stylesheet"),i.setAttribute("type","text/css"),document.head.appendChild(i)))}),jt=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e;this.player.alreadyPlayed&&this.player.video&&(null!=(e=this.lightDomInjector)&&e.destroy(),this.changeActiveItemsByTime(this.player.video.currentTime))},this.onPlayerReady=()=>{this.player.video&&this.changeActiveItemsByTime(this.player.video.currentTime)},this.onTimeUpdate=e=>{e=e.detail.time;this.changeActiveItemsByTime(e)},this.outsideCallActionsConnected=(e,t)=>{this.logger.debug("Outside call actions connected",{itemId:e,event:t.detail}),oo(this,ro,"f").set(e,t.detail),this.player.dispatchEvent(new n.Minimize)}}static shouldLoad(e,t){return e.callActions.active&&0e.type===t)}get version(){var e=null==(e=null==(e=null==(e=this.player)?void 0:e.config)?void 0:e.callActions)?void 0:e.version;return Gt.includes(e)?e:3}get callActions(){var e;return Gt.includes(null==(e=null==(e=null==(e=this.player)?void 0:e.config)?void 0:e.callActions)?void 0:e.version)&&(null==(e=null==(e=null==(e=this.player)?void 0:e.config)?void 0:e.callActions)?void 0:e.items)||[]}get callActionsByType(){return this.callActions.filter(e=>this.type===e.type).map(e=>Object.assign(Object.assign({},e),{_is_show_to_returning_viewer:e.show_to_returning_viewer&&this.player.store.get("callaction-show-to-returning-viewer-"+e.id,!1)}))}connectedCallback(){super.connectedCallback(),this.lightDomInjector=new Ug(this.doc,this.player),setTimeout(()=>{this.player.dispatchEvent(new r.Connected({version:this.version,items:this.callActionsByType,type:this.type})),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.addEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated),this.player.addEventListener(o.Ready,this.onPlayerReady)},200)}disconnectedCallback(){var e;super.disconnectedCallback(),this.player.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.removeEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated),this.player.removeEventListener(o.Ready,this.onPlayerReady),this.player.dispatchEvent(new r.Disconnected({version:this.version})),null!=(e=this.lightDomInjector)&&e.destroy(),this.destroyed=!0}getItems(e){var t=this.player.controllers.blockers.anyBlocker("played");let i=this.player.controllers.blockers.anyBlocker("smartAutoPlay","resume")||!t,r=Math.floor(e);return this.callActionsByType.filter(e=>!!e._is_show_to_returning_viewer||!i&&r>=e.range.start&&(!!e.persist_on_video_end||r<=e.range.finish))}scrollToElement(i){return no(this,void 0,void 0,function*(){yield he();for(var e of i)if(e.scroll_enabled){var t=oo(this,ro,"f").get(e.id)||oo(this,so,"f").get(e.id);if(t&&!t.alreadyScrolled&&!e._is_show_to_returning_viewer){t.handleScrollTo(e.scroll_offset);break}}i.forEach(e=>{e=oo(this,ro,"f").get(e.id)||oo(this,so,"f").get(e.id);e&&(e.alreadyScrolled=!0)})})}changeActiveItemsByTime(e){try{var t=[...this.activeItems.values()],i=this.getItems(e);In(t,i)||(this.activeItems=new Map(i.map(e=>[e.id,e])),oo(this,ao,"f").track(e),this.scrollToElement(i),i.forEach(e=>{e.show_to_returning_viewer&&this.player.store.set("callaction-show-to-returning-viewer-"+e.id,!0)}),this.player.dispatchEvent(new r.CurrentActiveItems({items:i,version:2,type:this.type})))}catch(e){this.logger.error("Error updating active items by time",e)}}createCTAIdentifier(e){return"callaction-button-"+e}createOutsideButton(t){var e=g({"--anchor-button-background-color":t.styles.background_color,"--anchor-button-background-color-hover":t.styles.background_hover_color,"--anchor-button-color":t.styles.text_color,"--anchor-button-color-hover":t.styles.text_hover_color,"--anchor-button-padding":""+t.styles.padding.values.map(e=>e+"px").join(" "),"--anchor-button-border-radius":t.styles.border_radius+"px","--anchor-button-font-size":t.typography.size+"px","--anchor-button-line-height":t.typography.line_height+"%","--anchor-button-letter-spacing":t.typography.letter_spacing+"px","--anchor-button-font-family":t.typography.family,"--anchor-button-font-weight":t.typography.weight,"--anchor-button-shadow-horizontal":t.styles.shadow.horizontal+"px","--anchor-button-shadow-vertical":t.styles.shadow.vertical+"px","--anchor-button-shadow-blur":t.styles.shadow.blur+"px","--anchor-button-shadow-spread":t.styles.shadow.spread+"px","--anchor-button-shadow-color":t.styles.shadow.color}),i=this.createCTAIdentifier(t.id);return{button:p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.logger} content=${t.content} href=${t.url} id=${i} style=${e} @connected=${e=>this.outsideCallActionsConnected(t.id,e)} @disconnected=${e=>oo(this,ro,"f").delete(t.id)} > `,id:i}}createInsideRichElement(e){var t,i=this.createCTAIdentifier(e.id);return e.rich_element&&e.rich_element.properties?("image"!==e.rich_element.type||null!=(t=e.rich_element.properties.link)&&t.url||(e.rich_element.properties.link={open_in_new_tab:e.open_in_new_tab,url:e.url}),{richElement:p``,id:i}):{richElement:p``,id:i}}createOutsideImage(t){var e=this.createCTAIdentifier(t.id),i=g({width:t.image_styles.width+"px",height:t.image_styles.height+"px",opacity:t.image_styles.opacity+"%",maxWidth:"95vw"});return{image:p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.logger} href=${t.url} id=${e} image_url=${t.image_url} style=${i} @connected=${e=>this.outsideCallActionsConnected(t.id,e)} @disconnected=${e=>oo(this,ro,"f").delete(t.id)} > `,id:e}}createCustomHtml(t){var e,i=this.createCTAIdentifier(t.id);return{customHtml:p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} id=${i} class="smartplayer-callaction__html" @connected=${e=>this.outsideCallActionsConnected(t.id,e)} @disconnected=${e=>oo(this,ro,"f").delete(t.id)} > `,id:i}}createDelayElement(t){var e=this.createCTAIdentifier(t.id);return{delayElement:p` oo(this,so,"f").set(t.id,e.detail)} @disconnected=${e=>oo(this,so,"f").delete(t.id)} @showing=${()=>this.player.dispatchEvent(new n.Minimize)} > `,id:e}}createCallActionSlot(e){var t=this.createCTAIdentifier(e.id),i=g({display:this.activeItems.has(e.id)?"block":"none"}),r=new Map;return e.as_html&&r.set("callaction__slot--html",!0),p` `}injectInitialElements(){this.callActionsByType.forEach(e=>{var t,i,r;if(e.as_html&&e.delay)return{delayElement:r,id:t}=this.createDelayElement(e),null==(i=this.lightDomInjector)?void 0:i.inject(r,t);"outside_video"!==e.type||this.player.isIframe||(e.as_html?({customHtml:i,id:r}=this.createCustomHtml(e),null!=(t=this.lightDomInjector)&&t.inject(i,r)):e.image_as_button?({image:t,id:i}=this.createOutsideImage(e),null!=(r=this.lightDomInjector)&&r.inject(t,i)):({button:r,id:t}=this.createOutsideButton(e),null!=(i=this.lightDomInjector)&&i.inject(r,t))),"inside_video"===e.type&&(e.as_html?this.logger.warn("HTML call actions are not supported inside the video"):({richElement:i,id:r}=this.createInsideRichElement(e),null!=(t=this.lightDomInjector)&&t.inject(i,r)))})}render(){var e;return this.destroyed?p``:(e="inside_video"===this.type?"inside":"outside",this.injectInitialElements(),this.callActionsByType.sort((e,t)=>(this.activeItems.has(e.id)?1:0)-(this.activeItems.has(t.id)?1:0)).forEach(e=>{var t;e.as_html||e.image_as_button||Vt("outside_video"===e.type?e.typography:null==(t=null==(t=e.rich_element)?void 0:t.properties)?void 0:t.typography),e.as_html&&e.delay&&(t=oo(this,so,"f").get(e.id))&&t.toggleVisibility(this.activeItems.has(e.id))}),p`
${Mt(this.activeItems.values(),e=>e.id,e=>this.createCallActionSlot(e))}
`)}},zt=(ro=new WeakMap,so=new WeakMap,ao=new WeakMap,Ht.componentName="CallActionV2",Ht.styles=[za],jt([Ga()],Ht.prototype,"activeItems",void 0),jt([Ga()],Ht.prototype,"destroyed",void 0),jt([ja({type:String})],Ht.prototype,"type",void 0),Ht=jt([Ka("vturb-call-action-v2")],Ht),{en:{backward:"Backward",blocked:"Blocked",forward:"Forward",fullscreen:"Fullscreen","license.blocked.by_rule":"Unable to display the video!","license.blocked.default_message":"BLOCKED","license.blocked.domain_not_allowed":"This domain is not in the list of allowed domains! Update the domain settings in the panel.","license.blocked.indefinite_block":"This domain has been blocked indefinitely. Contact support to learn more.","license.blocked.payment_open":"Video temporarily unavailable\nCheck your panel.",loop:"Loop",pause:"Pause",play:"Play",poweredBy:"Powered by VTurb",poweredByLink:"https://www.vturb.com/en/?via=player&utm_source=player","contextmenu.optimizeYourVslNow":"Optimize Your VSL Now!","contextmenu.optimizeYourVslNowLink":"https://vturb.com/en?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=optimize_your_vsl_now_en","contextmenu.wantToOptimizeYourVsl":"Want to Optimize Your VSL?","contextmenu.wantToOptimizeYourVslLink":"https://vturb.com/en?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=want_to_optimize_your_vsl_en","contextmenu.clickToOptimizeYourVslCheckEmoji":"Click to Optimize Your VSL ✅","contextmenu.clickToOptimizeYourVslCheckEmojiLink":"https://vturb.com/en?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_check_emoji_en","contextmenu.clickToOptimizeYourVsl":"Click to Optimize Your VSL","contextmenu.clickToOptimizeYourVslLink":"https://vturb.com/en?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_en",replay:"Replay",resume:"Resume","resume.play":"Continue watching","resume.replay":"Watch from beginning","resume.title":"You have already started watching this","smallplay.pause":"Pause","smallplay.play":"Play",speed:"Speed","speed.normal":"Normal","volume.control":"Volume control"},pt:{backward:"Backward",blocked:"Bloqueado",forward:"Forward",fullscreen:"Fullscreen","license.blocked.by_rule":"Não foi possível exibir o vídeo!","license.blocked.default_message":"BLOQUEADO","license.blocked.domain_not_allowed":"Este domínio não está na lista de domínios permitidos! Atualize as configurações de domínios no painel.","license.blocked.indefinite_block":"Esse domínio foi bloqueado por tempo indeterminado. Contate o suporte para saber mais.","license.blocked.payment_open":"Vídeo temporariamente indisponível\nVerifique seu painel.",loop:"Repetir",pause:"Pause",play:"Play",poweredBy:"Conheça o VTurb",poweredByLink:"https://www.vturb.com/pt-BR/?via=player&utm_source=player","contextmenu.optimizeYourVslNow":"Otimize Seu VSL Agora!","contextmenu.optimizeYourVslNowLink":"https://vturb.com/pt-BR?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=optimize_your_vsl_now_pt-br","contextmenu.wantToOptimizeYourVsl":"Quer Otimizar Seu VSL?","contextmenu.wantToOptimizeYourVslLink":"https://vturb.com/pt-BR?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=want_to_optimize_your_vsl_pt-br","contextmenu.clickToOptimizeYourVslCheckEmoji":"Clique Para Otimizar Seu VSL ✅","contextmenu.clickToOptimizeYourVslCheckEmojiLink":"https://vturb.com/pt-BR?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_check_emoji_pt-br","contextmenu.clickToOptimizeYourVsl":"Clique Para Otimizar Seu VSL","contextmenu.clickToOptimizeYourVslLink":"https://vturb.com/pt-BR?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_pt-br",replay:"Reativar",resume:"Resumir","resume.play":"Continuar assistindo","resume.replay":"Assistir do início","resume.title":"Você já começou a assistir isso","smallplay.pause":"Pausar","smallplay.play":"Reproduzir",speed:"Velocidade","speed.normal":"Normal","volume.control":"Controle de volume"},es:{backward:"Retroceder",blocked:"Bloqueado",forward:"Avanzar",fullscreen:"Pantalla completa","license.blocked.by_rule":"¡No se puede mostrar el video!","license.blocked.default_message":"BLOQUEADO","license.blocked.domain_not_allowed":"¡Este dominio no está en la lista de dominios permitidos! Actualiza la configuración de dominio en el panel.","license.blocked.indefinite_block":"Este dominio ha sido bloqueado indefinidamente. Contacta al soporte para obtener más información.","license.blocked.payment_open":"Vídeo temporalmente no disponible\nVerifica tu panel.",loop:"Repetir",pause:"Pausar",play:"Reproducir",poweredBy:"Desarrollado por VTurb",poweredByLink:"https://www.vturb.com/en/?via=player&utm_source=player","contextmenu.optimizeYourVslNow":"¡Optimiza Tu VSL Ahora!","contextmenu.optimizeYourVslNowLink":"https://vturb.com/es?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=optimize_your_vsl_now_es","contextmenu.wantToOptimizeYourVsl":"¿Quieres Optimizar Tu VSL?","contextmenu.wantToOptimizeYourVslLink":"https://vturb.com/es?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=want_to_optimize_your_vsl_es","contextmenu.clickToOptimizeYourVslCheckEmoji":"Haz Clic para Optimizar Tu VSL ✅","contextmenu.clickToOptimizeYourVslCheckEmojiLink":"https://vturb.com/es?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_check_emoji_es","contextmenu.clickToOptimizeYourVsl":"Haz Clic para Optimizar Tu VSL","contextmenu.clickToOptimizeYourVslLink":"https://vturb.com/es?via=player&utm_medium=powered_by_VTurb&utm_campaign=viral_player&utm_source=player&utm_content=click_to_optimize_your_vsl_es",replay:"Repetir",resume:"Reanudar","resume.play":"Continuar viendo","resume.replay":"Ver desde el principio","resume.title":"Ya has comenzado a ver esto","smallplay.pause":"Pausar","smallplay.play":"Reproducir",speed:"Velocidad","speed.normal":"Normal","volume.control":"Control de volumen"}}),Kt="en",v=e=>(zt[Kt]||(console.warn(`Language ${Kt} not found`),zt.en))[e],Wt=()=>{try{return localStorage.setItem("feature_test","yes"),localStorage.removeItem("feature_test"),!0}catch(e){return!1}},Yt=(e,t,i={})=>{let r={saveStorageSuccessful:!1,storageType:"none",storedIdentifier:void 0,wasStoraged:!1};if(!e||0===e.length)return[t,r];let{identifierKey:s,storageKey:a,store:n}=i;if(a&&s){if(n)r.storageType="store",r.storedIdentifier=n.get(a,void 0);else if(Wt()){r.storageType="localStorage";t=localStorage.getItem(a);if(t)try{r.storedIdentifier=JSON.parse(t)}catch(e){r.storedIdentifier=t}}if(void 0!==r.storedIdentifier){i=e.find(e=>e[s]===r.storedIdentifier);if(i)return r.wasStoraged=!0,r.saveStorageSuccessful=!0,[i,r]}}t=e[Math.floor(Math.random()*e.length)];if(a&&s){i=t[s];try{n?(n.set(a,i),r.saveStorageSuccessful=!0):Wt()&&(localStorage.setItem(a,JSON.stringify(i)),r.saveStorageSuccessful=!0)}catch(e){r.saveStorageSuccessful=!1}}return[t,r]},qt=[{translationLinkKey:"contextmenu.optimizeYourVslNowLink",translationKey:"contextmenu.optimizeYourVslNow"},{translationLinkKey:"contextmenu.wantToOptimizeYourVslLink",translationKey:"contextmenu.wantToOptimizeYourVsl"},{translationLinkKey:"contextmenu.clickToOptimizeYourVslCheckEmojiLink",translationKey:"contextmenu.clickToOptimizeYourVslCheckEmoji"},{translationLinkKey:"contextmenu.clickToOptimizeYourVslLink",translationKey:"contextmenu.clickToOptimizeYourVsl"}],Xt=(Va=e`.contextmenu{align-items:center;background:rgba(0,0,0,.9);border-radius:.3em;display:flex;font-size:18px;position:fixed;z-index:1002}.contextmenu a{color:#fff;cursor:pointer;display:inline-block;font-size:.8em;min-width:10.625em;padding:.7em 1em;pointer-events:auto;text-align:left;text-decoration:none;white-space:nowrap}.contextmenu a:hover{background-color:hsla(0,0%,100%,.1)}.contextmenu__backdrop{display:flex;height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1001}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var[e]=Yt(qt,qt[0]);return e||qt[0]})(),this.text="",this.visible=!1,this.x=0,this.y=0,this.hide=e=>{e.stopPropagation(),this.visible=!1},this.show=e=>{e.preventDefault(),this.visible=!0,this.x=e.clientX,this.y=e.clientY,this.link=v(this.option.translationLinkKey),this.text=v(this.option.translationKey);let t=e.clientX;this.updateComplete.then(()=>{var e=this.querySelector(".contextmenu");e&&(e=e.getBoundingClientRect().width,this.x+e>window.innerWidth)&&(this.x=Math.max(0,t-e))})}}connectedCallback(){var e;super.connectedCallback(),d()||null!=(e=this.player.player)&&e.addEventListener("contextmenu",this.show)}disconnectedCallback(){var e;super.disconnectedCallback(),null!=(e=this.player.player)&&e.removeEventListener("contextmenu",this.show)}render(){if(this.visible)return p`
`}}),Qt=(Xt.styles=[Va],Wa([Ga()],Xt.prototype,"link",void 0),Wa([Ga()],Xt.prototype,"option",void 0),Wa([Ga()],Xt.prototype,"text",void 0),Wa([Ga()],Xt.prototype,"visible",void 0),Wa([Ga()],Xt.prototype,"x",void 0),Wa([Ga()],Xt.prototype,"y",void 0),Xt=Wa([Ka("vturb-context-menu")],Xt),t=>e=>{if(d()&&"click"===e.type)try{"function"==typeof e.preventDefault&&e.preventDefault(),"function"==typeof e.stopPropagation&&e.stopPropagation()}catch(e){}else t(e,d())}),Zt=(za=e`.player.forward{pointer-events:auto}.player.forward svg{fill:inherit}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.video&&(e.stopPropagation(),this.player.dispatchEvent(new a.Forward({step:this.step})),this.player.controllers.bar.show(),this.player.controls.seek(this.player.video.currentTime+this.step))}),this.noop=Qt(e=>{e.stopPropagation(),e.preventDefault()})}render(){var e=g({color:this.player.config.style.foreground,fill:this.player.config.style.foreground});return p` `}});Zt.styles=za,Zt=Va([Ka("vturb-forward")],Zt);class jg extends vn{constructor(){super(...arguments),this.createRenderRoot=()=>this}}let Jt=p` `,ei=p` `,ti=(Wa=e`.player.fullscreen{pointer-events:auto}.player.fullscreen svg{fill:inherit}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.dispatchEvent(new(this.isFullscreen?n.Minimize:n.Expand))}}render(){var e=g({color:null==(e=this.styles)?void 0:e.foreground,fill:null==(e=this.styles)?void 0:e.foreground});return p` `}});ti.styles=Wa,za([ja({type:Boolean})],ti.prototype,"isFullscreen",void 0),za([ja({type:Object})],ti.prototype,"styles",void 0),ti=za([Ka("vturb-fullscreen-button")],ti);var Va=e`.progress-bar{align-items:center!important;cursor:pointer;justify-content:center!important;position:relative;width:100%}.progress-bar__background{background-color:var(--progressbar-background-color);height:var(--progressbar-height);position:relative;width:100%}.progress-bar__buffer{background-color:var(--progressbar-buffer-color,hsla(0,0%,100%,.4));visibility:hidden}.progress-bar__buffer,.progress-bar__fill{height:100%;left:0;position:absolute;top:0}.progress-bar__fill{background-color:var(--progressbar-fill-color,var(--style-foreground))}.progress-bar__handle{background-color:var(--progressbar-handle-color);border-radius:50%;height:var(--progressbar-handle-size);left:0;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:var(--progressbar-handle-size)}.progress-bar__backdrop{background-color:transparent;display:none;height:300vh;left:-100vw;position:absolute;top:-100vh;width:300vw;z-index:1}.progress-bar__time-tooltip{background-color:rgba(0,0,0,.8);border-radius:4px;bottom:50%;color:#fff;display:none;font-size:.75em;left:0;padding:4px 8px;position:absolute;transform:translateX(-50%) translateY(-10px)}.progress-bar:hover .progress-bar__handle{opacity:1;transform:translate(-50%,-50%) scale(1)}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.intervalId=setInterval(this.intervalObserver,50)},this.eventOnProgress=e=>{e=e.detail.video,e=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;this.elProgressBarBuffer.style.width=100*e+"%"},this.intervalObserver=()=>{!this.dragging&&this.player.video&&this.onTimeUpdate(this.player.video.currentTime)}}connectedCallback(){let e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});return lo(this,void 0,void 0,function*(){e.connectedCallback.call(this),this.logger.debug("ProgressBar connected"),this.player.addEventListener(a.Progress,this.eventOnProgress),this.player.addEventListener(a.Play,this.onVideoPlay,{once:!0})})}disconnectedCallback(){var e;super.disconnectedCallback(),this.logger.debug("ProgressBar disconnected"),null!=(e=this.player)&&e.removeEventListener(a.Progress,this.eventOnProgress),null!=(e=this.player)&&e.removeEventListener(a.Play,this.onVideoPlay),this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}onClick(e){this.logger.debug("onClick progress bar");var t,i=this.getProgress(e,this.elProgressBar);this.player.controls.seek(i*(null!=(t=null==(t=this.player.video)?void 0:t.duration)?t:1)),window.TouchEvent&&e instanceof TouchEvent&&0<(null==(t=null==e?void 0:e.touches)?void 0:t.length)&&(this.showTooltip(this.elProgressBarTimeTooltip,i),this.scheduleTooltipHide()),this.dragging=!1,this.elProgressBarBackdrop.style.display="none"}onMouseDown(e){this.dragging=!0,this.elProgressBarBackdrop.style.display="block",this.onMouseMove(e)}onMouseEnter(e){this.onMouseMove(e)}onMouseLeave(e){window.TouchEvent&&e instanceof TouchEvent&&this.onClick(e),this.elProgressBarTimeTooltip.style.display="none"}onMouseMove(e){var t;this.elProgressBarTimeTooltip&&this.elProgressBar&&(t=(e=this.getProgress(e,this.elProgressBar))*(null!=(t=null==(t=this.player.video)?void 0:t.duration)?t:1),this.tooltipProgress=e,this.elProgressBarTimeTooltip.textContent=this.timeToDisplay(t),this.elProgressBarTimeTooltip.style.left=100*e+"%",this.elProgressBarTimeTooltip.style.display="block",this.player.controllers.bar.show(),this.dragging)&&this.onTimeUpdate(t)}onMouseUp(e){this.logger.debug("onMouseUp progress bar"),this.dragging&&setTimeout(()=>{this.onClick(e)},50)}onTimeUpdate(e){e/=null!=(e=null==(e=this.player.video)?void 0:e.duration)?e:1;this.elProgressBarFill.style.width=100*e+"%",this.elProgressBarHandle.style.left=100*e+"%"}onVideoEnded(){this.elProgressBarFill.style.width="100%",this.elProgressBarHandle.style.left="100%"}render(){return p`
00:00
`}getProgress(e,t,i){var{left:t,width:r}=t.getBoundingClientRect();let s=this.tooltipProgress;return"clientX"in e?s=(e.clientX-t)/r:"touches"in e&&0{this.elProgressBarTimeTooltip.style.display="none",this.tooltipHideTimeout=null},this.tooltipHideDelay)}showTooltip(e,t){var i;e&&(i=t*(null!=(i=null==(i=this.player.video)?void 0:i.duration)?i:1),e.textContent=this.timeToDisplay(i),e.style.left=100*t+"%",e.style.display="block")}timeToDisplay(e){var t=Math.floor(e/3600),i=Math.floor(e%3600/60),e=Math.floor(e%60);return 0{e.stopPropagation(),this.player.dispatchEvent(new h.BarCloser),this.player.video&&(this.player.dispatchEvent(new a.Rewind({step:this.step})),this.player.controllers.bar.show(),this.player.controls.seek(Math.max(0,this.player.video.currentTime-this.step)))}),this.noop=Qt(e=>{e.stopPropagation(),e.preventDefault()})}render(){var e=g({color:this.player.config.style.foreground,fill:this.player.config.style.foreground}),t=_t({rewind:!0});return p` `}});function Ya(e,t,i){return e?t():null==i?void 0:i()}ii.styles=za,ii=Va([Ka("vturb-rewind")],ii);let ri=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.controls.toggle(),this.player.controllers.bar.show()}}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.Play,()=>this.requestUpdate()),this.player.addEventListener(a.Pause,()=>this.requestUpdate())}render(){return p` `}},ai=(si.styles=e``,si=ri([Ka("vturb-smallplay")],si),Wa=e`:host{display:block}.menu-item{align-items:center;cursor:pointer;display:flex;height:var(--menu-item-height);padding:calc(var(--menu-padding)/2) var(--menu-padding);transition:background-color var(--menu-transition);user-select:none}.menu-item:hover{background-color:var(--menu-hover-color)}.menu-item__icon{align-items:center;color:var(--menu-icon-color);display:flex;fill:var(--menu-icon-color);height:var(--menu-icon-size);justify-content:center;margin-right:var(--menu-padding);width:var(--menu-icon-size)}.menu-item__icon svg{height:1em;width:1em}.menu-item__label{flex:1;font-size:var(--menu-font-size);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.menu-item__check{color:var(--menu-icon-color);fill:var(--menu-icon-color);margin-left:var(--menu-padding)}.menu-item__check svg{height:1em;width:1em}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.dispatchEvent(new CustomEvent("item-selected",{bubbles:!0,composed:!0,detail:{value:this.value}}))}),this.icon="",this.label="",this.selected=!1}render(){return p` `}}),ni=(ai.styles=[Wa],za([ja({type:String})],ai.prototype,"value",void 0),za([ja({type:String})],ai.prototype,"icon",void 0),za([ja({type:String})],ai.prototype,"label",void 0),za([ja({reflect:!0,type:Boolean})],ai.prototype,"selected",void 0),ai=za([Ka("smart-menu-item")],ai),Va=e`:host{--menu-bg-color:#203ea6;--menu-text-color:#fafafa;--menu-hover-color:#2b4bb3;--menu-selected-color:#2b4bb3;--menu-icon-color:#fff;--menu-divider-color:hsla(0,0%,100%,.1);--menu-shadow:0 4px 6px rgba(0,0,0,.1);--menu-item-height:1.6em;--menu-padding:0.6em;--menu-border-radius:0.4em;--menu-icon-size:0.75em;--menu-font-size:0.75em;--menu-transition:0.2s ease;display:block}.menu{background-color:var(--menu-bg-color);border-radius:var(--menu-border-radius);box-shadow:var(--menu-shadow);color:var(--menu-text-color);display:none;min-width:10em;overflow:hidden}.menu[opened]{display:flex;flex-direction:column}.menu.top-left{left:0;top:0}.menu.top-right{right:0;top:0}.menu.bottom-left{bottom:0;left:0}.menu.bottom-right{bottom:0;right:0}.menu__header{align-items:center;border-bottom:1px solid var(--menu-divider-color);display:flex;font-size:var(--menu-font-size);height:var(--menu-item-height);padding:var(--menu-padding)}.menu__content{display:flex;flex-direction:column;overflow-y:auto}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e=document.querySelector(this.target);e&&(e=e.getBoundingClientRect(),this.style.left=e.left+"px",this.style.top=e.top+"px")}}connectedCallback(){super.connectedCallback(),this.target&&(window.addEventListener("resize",this._reposition),window.addEventListener("scroll",this._reposition))}disconnectedCallback(){super.disconnectedCallback(),this.target&&(window.removeEventListener("resize",this._reposition),window.removeEventListener("scroll",this._reposition))}render(){return p` `}}),oi=(ni.styles=[Va],Wa([ja({reflect:!0,type:Boolean})],ni.prototype,"opened",void 0),Wa([ja({type:String})],ni.prototype,"position",void 0),Wa([ja({type:String})],ni.prototype,"target",void 0),Wa([ja({type:String})],ni.prototype,"title",void 0),ni=Wa([Ka("smart-menu")],ni),za=e`:host{display:block}.submenu__header{align-items:center;cursor:pointer;display:flex;height:var(--menu-item-height);padding:0 var(--menu-padding);transition:background-color var(--menu-transition);user-select:none}.submenu__header:hover{background-color:var(--menu-hover-color)}.submenu__header ::slotted([slot=icon]){color:var(--menu-icon-color);height:var(--menu-icon-size);margin-right:var(--menu-padding);width:var(--menu-icon-size)}.submenu__label{flex:1;font-size:var(--menu-font-size)}.submenu__value{margin-right:var(--menu-padding);opacity:.8}.submenu__arrow{align-items:center;color:var(--menu-icon-color);display:flex;transition:transform var(--menu-transition)}.submenu__arrow.opened{transform:rotate(90deg)}.submenu__content{background-color:var(--menu-hover-color);display:none}.submenu__content[opened]{display:block}.submenu__switch{align-items:center;display:flex}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3 `}_handleClick(){this.opened=!this.opened,this.dispatchEvent(new CustomEvent("submenu-toggle",{bubbles:!0,composed:!0,detail:{opened:this.opened}}))}}),li=(oi.styles=[za],Va([ja({type:Boolean})],oi.prototype,"hasSwitch",void 0),Va([ja({type:String})],oi.prototype,"label",void 0),Va([ja({reflect:!0,type:Boolean})],oi.prototype,"opened",void 0),Va([ja({type:String})],oi.prototype,"value",void 0),oi=Va([Ka("smart-submenu")],oi),Wa=e`:host{display:inline-block}.switch{--switch-width:40px;--switch-height:24px;--switch-padding:2px;--switch-thumb-size:calc(var(--switch-height) - var(--switch-padding)*2);align-items:center;cursor:pointer;display:inline-flex}.switch__track{background-color:hsla(0,0%,100%,.3);border-radius:calc(var(--switch-height)/2);height:var(--switch-height);padding:var(--switch-padding);transition:background-color var(--menu-transition);width:var(--switch-width)}.switch__thumb{background-color:var(--menu-text-color);border-radius:50%;height:var(--switch-thumb-size);transform:translateX(0);transition:transform var(--menu-transition);width:var(--switch-thumb-size)}.switch[aria-checked=true] .switch__track{background-color:var(--menu-selected-color)}.switch[aria-checked=true] .switch__thumb{transform:translateX(calc(var(--switch-width) - var(--switch-height)))}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3
`}_handleClick(){this.checked=!this.checked,this.dispatchEvent(new CustomEvent("switch-change",{bubbles:!0,composed:!0,detail:{checked:this.checked}}))}});li.styles=[Wa],za([ja({reflect:!0,type:Boolean})],li.prototype,"checked",void 0),li=za([Ka("smart-switch")],li);var ho,Va=e`vturb-speed-control{position:relative}.m-w-360 vturb-speed-control .speed-control__option{font-size:.7em}.m-w-480 vturb-speed-control .speed-control__option{font-size:.8em}.m-w-550 vturb-speed-control .speed-control__option{font-size:.9em}#speed-control-menu{--menu-bg-color:var(--style-background-opacity);--menu-text-color:var(--style-foreground);--menu-hover-color:var(--style-background);--menu-selected-color:var(--style-background);--menu-icon-color:var(--style-foreground);--menu-divider-color:hsla(0,0%,100%,.1);--menu-shadow:0 4px 6px rgba(0,0,0,.1)}.speed-control__current{align-items:center;color:var(--style-foreground);display:inline-flex;font-size:1em;text-align:center}.speed-control__options{bottom:100%;display:flex;flex-direction:column;justify-content:flex-end;position:absolute!important;right:0;white-space:nowrap}.speed-control__options button.speed-control__option{background-color:var(--style-background-opacity);color:#fff;cursor:pointer;display:block;font-size:1em;opacity:1;padding:.5em 1.5em;text-align:left;width:100%}.m-w-360 .speed-control__options button.speed-control__option{font-size:.7em;padding:.3em 1em}.m-w-480 .speed-control__options button.speed-control__option{font-size:.8em;padding:.4em 1.2em}.m-w-550 .speed-control__options button.speed-control__option{font-size:.9em;padding:.4em 1.5em}.speed-control__options button.speed-control__option:hover{background-color:var(--style-background-90)}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.mountedMenu||!e||(this.mountedMenu=e),this._updatePosition()},this.getContainingBlockOffset=e=>{let t=e.parentElement;for(;t;){var i=getComputedStyle(t);if("none"!==i.transform||"none"!==i.perspective||"none"!==i.filter||i.willChange.includes("transform"))return t.getBoundingClientRect();t=t.parentElement}return{top:0,left:0}},this._updatePosition=()=>{if(this.mountedMenu&&this.speedControl)if(10this._updatePosition(),10);this.tries=0,this.mountedMenu.style.visibility="visible";var n=this.getContainingBlockOffset(this.mountedMenu);let e=i-s-10-n.top;i=t+r-a-n.left;0===Math.round(window.scrollY)&&e<0&&(e=0),this.mountedMenu.style.top=e+"px",this.mountedMenu.style.left=i+"px"}},this.close=e=>{var t;this.player.controlBar.removeEventListener("click",this.close),null!=(t=this.player.player)&&t.removeEventListener("click",this.close),this.player.removeEventListener(h.BarCloser,this.close),this.speedOptionsVisible=!1,this.player.controllers.bar.blockClose=!1,this.requestUpdate()},this.onSpeedChange=()=>{this.requestUpdate()},this.onSpeedControlClick=e=>{e.stopPropagation(),"click"===e.type&&d()?e.preventDefault():this.toggleSpeedOptions()},this.open=()=>{var e;this.player.controlBar.addEventListener("click",this.close),null!=(e=this.player.player)&&e.addEventListener("click",this.close),this.player.addEventListener(h.BarCloser,this.close),this.speedOptionsVisible=!0,this.player.controllers.bar.blockClose=!0,this.requestUpdate()}}get currentSpeed(){var e;return null!=(e=null==(e=this.player.video)?void 0:e.playbackRate)?e:1}connectedCallback(){var e;super.connectedCallback(),null!=(e=this.player)&&e.addEventListener(a.Speedchange,this.onSpeedChange),null!=(e=this.player)&&e.addEventListener(n.Entered,this._updatePosition),null!=(e=this.player)&&e.addEventListener(n.Exited,this._updatePosition),window.addEventListener("resize",this._updatePosition),window.addEventListener("scroll",this._updatePosition,!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null!=(e=this.player)&&e.removeEventListener(a.Speedchange,this.onSpeedChange),null!=(e=this.player)&&e.removeEventListener(n.Entered,this._updatePosition),null!=(e=this.player)&&e.removeEventListener(n.Exited,this._updatePosition),window.removeEventListener("resize",this._updatePosition),window.removeEventListener("scroll",this._updatePosition,!0)}render(){var e=_t({active:this.speedOptionsVisible,"speed-control":!0});return p`
{e.stopPropagation(),e.preventDefault()}} > ${Ya(this.speedOptionsVisible,()=>p` {this.setSpeed(Number(e.detail.value)),setTimeout(()=>{this.player.dispatchEvent(new h.BarCloser)},ho.CLOSE_DELAY)}} @click=${e=>{e.stopPropagation(),e.preventDefault()}} @touchend=${e=>{e.stopPropagation(),e.preventDefault()}} > `)}
`}renderSpeedOptions(){return p``}setSpeed(e,t){t&&(t.stopPropagation(),t.preventDefault()),this.player.controls.speed(e)}toggleSpeedOptions(){this.speedOptionsVisible?this.close():this.open()}};hi.CLOSE_DELAY=250,hi.ComponentName="SpeedControl",hi.reRenderOn=[o.Resize],hi.speedOptions=[.5,.75,1,1.25,1.5,2],hi.styles=Va,Wa([Ha(".speed-control")],hi.prototype,"speedControl",void 0),hi=ho=Wa([Ka("vturb-speed-control")],hi);var co,za=e`.subtitles{bottom:calc(var(--fakebar-height, 0) + .5em);color:var(--style-foreground);left:50%;max-width:var(--subtitle-max-width);position:absolute;text-align:center;text-shadow:var(--subtitle-text-shadow);transform:translateX(-50%);width:100%;z-index:9}.m-w-360 .subtitles,.m-w-480 .subtitles,.m-w-550 .subtitles{max-width:var(--subtitle-max-width-small)}.subtitles span{-webkit-box-decoration-break:clone;box-decoration-break:clone;font-family:var(--style-font-family);font-size:1em;font-weight:var(--subtitle-font-weight);letter-spacing:var(--subtitle-letter-spacing);line-height:var(--subtitle-line-height);margin:0;padding:var(--subtitle-padding);text-align:inherit;text-shadow:var(--subtitle-text-shadow);white-space:pre-wrap}.subtitles span span{position:relative}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e=this.player.config.video.width;let t=this.player.config.subtitles.fontSize;"string"==typeof t&&(t=Number(t.replace("px","").replace("%","").replace("em","").replace("rem","")));var i=Number(null==(i=this.player.video)?void 0:i.clientWidth)/Number(e)||1,i=Math.min(1.2,Math.max(.6,i)),e=(this.player.dispatchEvent(new te.ConfigChange({config:Object.assign(Object.assign({},null!=(e=this.config)?e:{}),{multiplier:i})})),i*(null!=t?t:18)+"px");e!==this.fontSize&&(this.fontSize=e,this.requestUpdate())},this.onConfigUpdated=e=>{this.logger.debug("Subtitle config updated",{config:e.detail.config,player:e.detail.player}),this.calculateFontSize()},this.onLoadedMetadata=()=>{var e,t;null!=(t=this.player.hlsVideo)&&t.video&&((t=this.logger.group("debug","Video metadata loaded")).message("Checking for active track",{hasActiveTrack:!!this.player.activeTrack,hasVideo:!(null==(e=this.player.hlsVideo)||!e.video)}),this.player.activeTrack&&(t.message("Setting up initial subtitle track",{trackKind:this.player.activeTrack.kind,trackLabel:this.player.activeTrack.label,trackLanguage:this.player.activeTrack.language}),this.setupCueChangeListener(this.player.activeTrack)),t.end())},this.onTrackChange=e=>{var t,i;this.currentCue!==e.detail.track&&((i=this.logger.group("info","Subtitle track changed")).message("Track details",{kind:null==(t=e.detail.track)?void 0:t.kind,label:null==(t=e.detail.track)?void 0:t.label,language:null==(t=e.detail.track)?void 0:t.language,mode:null==(t=e.detail.track)?void 0:t.mode}),this.cleanupTrackListeners(),e.detail.track?(i.message("Setting up new track listener",{trackLabel:e.detail.track.label}),this.setupCueChangeListener(e.detail.track)):(i.message("No track selected, clearing current cue"),this.currentCue=null),i.end())},this.cueChangeHandler=()=>{var e,t=this.player.activeTrack;t?(e=Array.from(t.activeCues||[])[0]||null)!==this.currentCue&&(this.logger.debug("Subtitle cue changed",{endTime:null===e?void 0:e.endTime,startTime:null===e?void 0:e.startTime,text:null===e?void 0:e.text,trackLabel:t.label,trackLanguage:t.language}),this.currentCue=e):this.currentCue=null}}connectedCallback(){super.connectedCallback(),this.logger.info("Subtitle component initialized",{componentName:co.componentName,config:this.config,fontSize:this.fontSize,show:this.show}),this.player.addEventListener(a.Loadedmetadata,this.onLoadedMetadata),this.player.addEventListener(te.TrackChange,this.onTrackChange),this.player.addEventListener(o.Resize,this.calculateFontSize),this.player.addEventListener(o.ConfigUpdated,this.onConfigUpdated)}disconnectedCallback(){var e;this.logger.debug("Subtitle component disconnected",{componentName:co.componentName,currentCue:null==(e=this.currentCue)?void 0:e.text,show:this.show}),super.disconnectedCallback(),this.player.removeEventListener(a.Loadedmetadata,this.onLoadedMetadata),this.player.removeEventListener(te.TrackChange,this.onTrackChange),this.player.removeEventListener(o.Resize,this.calculateFontSize),this.player.removeEventListener(o.ConfigUpdated,this.onConfigUpdated),this.player.dispatchEvent(new te.Inactive),this.cleanupTrackListeners()}firstUpdated(){this.calculateFontSize()}render(){var e,t,i;return this.currentCue&&this.show&&!this.player.controllers.blockers.noneBlocker("played")?(i=this.player.config.subtitles,t=g({fontSize:this.fontSize,justifyContent:{center:"center",left:"flex-start",right:"flex-end"}[null!=(t=i.align)?t:"center"]||"center",textAlign:null!=(t=i.align)?t:"center"}),i=g({backgroundColor:null!=(e=i.backgroundColor)?e:"rgba(0, 0, 0, 0.7)",color:null!=(e=i.color)?e:"#FFFFFF"}),p`
${this.currentCue.text}
`):null}cleanupTrackListeners(){this.currentCue&&(this.logger.debug("Cleaning up track listeners",{hadCurrentCue:!!this.currentCue}),this.currentCue.removeEventListener("cuechange",this.cueChangeHandler))}setupCueChangeListener(e){this.logger.debug("Setting up cue change listener",{trackLabel:e.label,trackLanguage:e.language,trackMode:e.mode}),e.addEventListener("cuechange",this.cueChangeHandler)}},ci=(di.componentName="Subtitle",di.styles=za,Va([ja({type:Object})],di.prototype,"config",void 0),Va([ja({reflect:!0,type:Boolean})],di.prototype,"show",void 0),Va([Ga()],di.prototype,"currentCue",void 0),di=co=Va([Ka("vturb-subtitles")],di),Wa=e``,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.interface.setup({subtitles:{show:!this.player.config.subtitles.show}})}}render(){var e=g({color:this.player.config.style.foreground,fill:this.player.config.style.foreground});return p` `}}),ui=(ci.styles=Wa,ci=za([Ka("vturb-subtitle-control")],ci),Va=e`.video-time{align-items:center!important;color:var(--style-foreground);display:flex;justify-content:center!important;padding-left:.5em;padding-right:.5em}.m-w-360 .video-time .video-time-total,.m-w-480 .video-time .video-time-total,.m-w-550 .video-time .video-time-total,.video-time .video-time-total{display:none}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var t;this.videoTimeTotal.innerHTML=" / "+this.formatTime(null!=(t=null==(t=this.player.video)?void 0:t.duration)?t:0)},this.onTimeUpdate=e=>{this.videoTimeCurrent.textContent=this.formatTime(e.detail.time)}}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.addEventListener(a.Loadedmetadata,this.onLoadedMetadata)}disconnectedCallback(){var e;super.disconnectedCallback(),null!=(e=this.player)&&e.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),null!=(e=this.player)&&e.removeEventListener(a.Loadedmetadata,this.onLoadedMetadata)}formatTime(e){e=Math.max(0,e);return Math.floor(e/60)+":"+Math.floor(e%60).toString().padStart(2,"0")}render(){return p`
00:00 / --:--
`}firstUpdated(e){var t;this.onTimeUpdate({detail:{time:null!=(t=null==(t=this.player.video)?void 0:t.currentTime)?t:0}})}}),b=(ui.styles=Va,Wa([Ha(".video-time-current")],ui.prototype,"videoTimeCurrent",void 0),Wa([Ha(".video-time-total")],ui.prototype,"videoTimeTotal",void 0),ui=Wa([Ka("vturb-video-time")],ui),za=e`#player .volume{position:relative}#player .volume__control{align-items:center;background:var(--style-background-opacity);border-radius:var(--control-border-radius) var(--control-border-radius) 0 0;bottom:100%;box-sizing:border-box;cursor:pointer;display:flex;height:7em;justify-content:center;left:50%;opacity:0;padding:1.125em .5em;position:absolute;transform:translateX(-50%);transition:opacity .2s ease;visibility:hidden;width:100%}#player .volume__control range-slider{height:5em;width:1.5em;--slider-height:0.125em;--thumb-diameter:0.625em;--slider-background:var(--style-foreground-50);--slider-value-color:var(--style-foreground);--thumb-color:var(--style-foreground)}#player .volume__button-icon{align-items:center;display:none;fill:#fff;height:100%;justify-content:center;width:1.5em}#player .volume.in-change .volume__button,#player .volume:not(.mobile):hover .volume__button{padding-right:.625em}#player .volume.in-change .volume__control,#player .volume:not(.mobile):hover .volume__control{opacity:1;overflow:hidden;visibility:visible}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{e.preventDefault(),e.stopPropagation(),this.volumeChangeStarted&&(this.player.controllers.bar.show(),this.player.controls.volume(this.Slider.value))},this.onVolumeChange=e=>{this.updateVolume(),this.requestUpdate()},this.startVolumeChange=e=>{this.volumeChangeStarted=!0,this.doc.addEventListener("mouseup",this.stopVolumeChange),this.doc.addEventListener("touchend",this.stopVolumeChange),this.player.controllers.bar.dispatchCloser()},this.stopVolumeChange=()=>{this.volumeChangeStarted=!1,this.doc.removeEventListener("mouseup",this.stopVolumeChange),this.doc.removeEventListener("touchend",this.stopVolumeChange)},this.toggleMute=e=>{this.player.muted||this.currentVolume<=.05?this.player.controls.unmute():this.player.controls.mute(),this.player.controllers.bar.show(),this.updateVolume()}}get currentVolume(){var e;return null!=(e=null==(e=this.player.video)?void 0:e.volume)?e:0}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.Volumechange,this.onVolumeChange)}disconnectedCallback(){var e;super.disconnectedCallback(),null!=(e=this.player)&&e.removeEventListener(a.Volumechange,this.onVolumeChange)}firstUpdated(){this.updateVolume()}render(){return p`
${Ya(!d(),()=>p`
{e.stopPropagation()}} @mousedown=${this.startVolumeChange} @touchstart=${this.startVolumeChange} >
`)}
`}updateVolume(){0===this.currentVolume||this.player.muted?(this.Volume3.style.display="none",this.Volume2.style.display="none",this.Volume1.style.display="none",this.VolumeMute.style.display="flex"):(this.currentVolume<.25?(this.Volume3.style.display="none",this.Volume2.style.display="none",this.Volume1.style.display="flex"):(this.currentVolume<.75?(this.Volume3.style.display="none",this.Volume2.style.display="flex"):(this.Volume3.style.display="flex",this.Volume2.style.display="none"),this.Volume1.style.display="none"),this.VolumeMute.style.display="none")}}),pi=(b.styles=za,Va([Ha("range-slider")],b.prototype,"Slider",void 0),Va([Ha(".volume__button-icon--1")],b.prototype,"Volume1",void 0),Va([Ha(".volume__button-icon--2")],b.prototype,"Volume2",void 0),Va([Ha(".volume__button-icon--3")],b.prototype,"Volume3",void 0),Va([Ha(".volume__button")],b.prototype,"VolumeButton",void 0),Va([Ga()],b.prototype,"volumeChangeStarted",void 0),Va([Ha(".volume__button-icon--mute")],b.prototype,"VolumeMute",void 0),b=Va([Ka("vturb-volume")],b),Wa=e`.controls{bottom:0;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--control-gap-vertical);justify-content:flex-end;left:0;opacity:0;position:absolute;transform:translateY(var(--control-translate-y));transition:opacity var(--base-transition),transform var(--base-transition);width:100%;z-index:var(--control-index)}.controls--progress-bar{justify-content:flex-start}.controls vturb-volume button.active,.controls vturb-volume:hover{border-top-left-radius:0!important;border-top-right-radius:0!important}.controls .controls__menu-button-wrapper,.controls vturb-forward,.controls vturb-fullscreen-button,.controls vturb-progress-bar,.controls vturb-rewind,.controls vturb-smallplay,.controls vturb-speed-control,.controls vturb-subtitle-control,.controls vturb-video-time,.controls vturb-volume{align-items:center;background:var(--style-background-opacity);display:flex;height:100%;justify-content:center}.controls .controls__menu-button-wrapper:hover,.controls vturb-forward:hover,.controls vturb-fullscreen-button:hover,.controls vturb-progress-bar:hover,.controls vturb-rewind:hover,.controls vturb-smallplay:hover,.controls vturb-speed-control:hover,.controls vturb-subtitle-control:hover,.controls vturb-video-time:hover,.controls vturb-volume:hover{opacity:1;transition:opacity calc(var(--base-transition-duration)/2.2) var(--base-transition-cubic)}.controls .controls__menu-button-wrapper>:not(.no-size),.controls vturb-forward>:not(.no-size),.controls vturb-fullscreen-button>:not(.no-size),.controls vturb-progress-bar>:not(.no-size),.controls vturb-rewind>:not(.no-size),.controls vturb-smallplay>:not(.no-size),.controls vturb-speed-control>:not(.no-size),.controls vturb-subtitle-control>:not(.no-size),.controls vturb-video-time>:not(.no-size),.controls vturb-volume>:not(.no-size){align-items:stretch;display:flex;height:calc(var(--control-padding)*2 + var(--control-button-size));position:relative}.controls button{align-items:center;background:transparent;border:none;color:var(--style-foreground);cursor:pointer;display:flex;fill:var(--style-foreground);font-size:1em;justify-content:center;opacity:.75;padding:var(--control-padding);padding-block:var(--control-padding);padding-inline:var(--control-padding);transition:opacity calc(var(--base-transition-duration)/2.2) var(--base-transition-cubic)}.controls button:hover{background:var(--style-hover-background);opacity:1}.controls button,.controls button *{pointer-events:auto}.controls svg{background:transparent;color:var(--style-foreground);fill:var(--style-foreground);height:var(--control-button-size);width:var(--control-button-size)}.controls__first{align-items:flex-end;display:flex;flex-direction:row;justify-content:space-between}.controls__first--left,.controls__first--right{align-items:stretch;display:flex;flex-direction:row;justify-content:flex-start;position:relative}.controls.controls--progress-bar .controls__first--left{flex:1}.controls__first--left vturb-progress-bar{flex:1;padding:0 var(--control-padding,.5em)}.controls__menu-button--active{background:var(--style-hover-background)!important;border-radius:var(--control-border-radius);opacity:1!important}.controls:not(.controls--progress-bar) .controls__first--left>:last-child{border-radius:0 var(--control-border-radius) var(--control-border-radius) 0}.controls:not(.controls--progress-bar) .controls__first--right>:first-child{border-radius:var(--control-border-radius) 0 0 var(--control-border-radius)}.has-fakebar .controls.bottom-controls-visible{background:linear-gradient(0deg,rgba(0,0,0,.5),transparent);box-sizing:border-box;padding:1.4em .8em calc(var(--fakebar-height, 0) + .4em)}.has-fakebar .controls.bottom-controls-visible .controls__first--left,.has-fakebar .controls.bottom-controls-visible .controls__first--right{gap:.5em}.has-fakebar .controls.bottom-controls-visible .controls__menu-button-wrapper,.has-fakebar .controls.bottom-controls-visible vturb-forward,.has-fakebar .controls.bottom-controls-visible vturb-fullscreen-button,.has-fakebar .controls.bottom-controls-visible vturb-rewind,.has-fakebar .controls.bottom-controls-visible vturb-smallplay,.has-fakebar .controls.bottom-controls-visible vturb-speed-control,.has-fakebar .controls.bottom-controls-visible vturb-subtitle-control,.has-fakebar .controls.bottom-controls-visible vturb-volume{background:transparent;border-radius:var(--control-border-radius)}.has-fakebar .controls.bottom-controls-visible .controls__menu-button-wrapper button,.has-fakebar .controls.bottom-controls-visible vturb-forward button,.has-fakebar .controls.bottom-controls-visible vturb-fullscreen-button button,.has-fakebar .controls.bottom-controls-visible vturb-rewind button,.has-fakebar .controls.bottom-controls-visible vturb-smallplay button,.has-fakebar .controls.bottom-controls-visible vturb-speed-control button,.has-fakebar .controls.bottom-controls-visible vturb-subtitle-control button,.has-fakebar .controls.bottom-controls-visible vturb-volume button{opacity:1}.has-fakebar .controls.bottom-controls-visible .controls__menu-button-wrapper button.active,.has-fakebar .controls.bottom-controls-visible .controls__menu-button-wrapper:hover,.has-fakebar .controls.bottom-controls-visible vturb-forward button.active,.has-fakebar .controls.bottom-controls-visible vturb-forward:hover,.has-fakebar .controls.bottom-controls-visible vturb-fullscreen-button button.active,.has-fakebar .controls.bottom-controls-visible vturb-fullscreen-button:hover,.has-fakebar .controls.bottom-controls-visible vturb-rewind button.active,.has-fakebar .controls.bottom-controls-visible vturb-rewind:hover,.has-fakebar .controls.bottom-controls-visible vturb-smallplay button.active,.has-fakebar .controls.bottom-controls-visible vturb-smallplay:hover,.has-fakebar .controls.bottom-controls-visible vturb-speed-control button.active,.has-fakebar .controls.bottom-controls-visible vturb-speed-control:hover,.has-fakebar .controls.bottom-controls-visible vturb-subtitle-control button.active,.has-fakebar .controls.bottom-controls-visible vturb-subtitle-control:hover,.has-fakebar .controls.bottom-controls-visible vturb-volume button.active,.has-fakebar .controls.bottom-controls-visible vturb-volume:hover{background:var(--style-background-opacity);border-radius:var(--control-border-radius)}.has-fakebar .controls.bottom-controls-visible vturb-progress-bar,.has-fakebar .controls.bottom-controls-visible vturb-video-time{background:transparent}.has-fakebar .controls.bottom-controls-visible vturb-progress-bar button,.has-fakebar .controls.bottom-controls-visible vturb-video-time button{opacity:1}.controls__inner{align-items:center;display:flex;gap:var(--control-gap-horizontal);justify-content:space-around;left:0;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transform:translateY(-30%);transition:opacity var(--base-transition),transform var(--base-transition);width:100%}.controls__inner,.controls__inner *{pointer-events:none!important}.controls__inner--center,.controls__inner--left,.controls__inner--right{align-items:center;display:flex;justify-content:center;width:33%}.m-w-360 .controls__inner{font-size:10px}.m-w-480 .controls__inner{font-size:12px}.m-w-550 .controls__inner{font-size:14px}.m-w-640 .controls__inner{font-size:16px}.m-w-768 .controls__inner{font-size:18px}.m-w-1024 .controls__inner{font-size:20px}.m-w-1280 .controls__inner{font-size:22px}.m-w-1440 .controls__inner{font-size:24px}.m-w-1600 .controls__inner{font-size:26px}.m-w-1920 .controls__inner{font-size:28px}.controls__inner button{align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:100%;color:#fff;cursor:pointer;display:inline-flex;fill:#fff;font-size:1em;justify-content:center;opacity:.75;padding:var(--control-mobile-button-padding);padding-block:var(--control-mobile-button-padding);padding-inline:var(--control-mobile-button-padding);transition:opacity calc(var(--base-transition-duration)/2.2) var(--base-transition-cubic)}.is-mobile .controls__inner button:active{animation:mobile-click-feedback var(--base-transition-duration) var(--base-transition-cubic)}@keyframes mobile-click-feedback{0%{box-shadow:0 0 0 0 hsla(0,0%,100%,.8)}70%{box-shadow:0 0 0 .9375em hsla(0,0%,100%,0)}to{box-shadow:0 0 0 0 hsla(0,0%,100%,0)}}#player:not(.is-mobile) .controls__inner button:hover{background:var(--style-dark-hover-background);opacity:1}.controls__inner button,.controls__inner button *{pointer-events:auto}.controls__inner button svg{background:transparent;color:#fff;fill:#fff;height:var(--control-mobile-button-icon-size);width:var(--control-mobile-button-icon-size)}.controls__inner .featured button{padding:var(--control-mobile-button-featured-padding);padding-block:var(--control-mobile-button-featured-padding);padding-inline:var(--control-mobile-button-featured-padding)}.controls__inner .featured button svg{height:var(--control-mobile-button-featured-icon-size);width:var(--control-mobile-button-featured-icon-size)}.show-controls .controls{opacity:1;transform:translateY(0)}.show-controls .controls__inner{opacity:1;transform:translateY(calc(-50% - var(--control-padding)*2/2 - .75rem))}.show-controls .controls__inner,.show-controls .controls__inner *{pointer-events:all!important}#player.is-mobile .controls vturb-fullscreen-button button:focus,#player.is-mobile .controls vturb-fullscreen-button button:hover,#player.is-mobile vturb-fullscreen-button:focus,#player.is-mobile vturb-fullscreen-button:hover{background:transparent}`,function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.player.dispatchEvent(new h.BarCloser),e.stopPropagation(),t||e.preventDefault()}),this.showMenu=!1,this.controlsActiveHandler=()=>this.sendEvents(!0),this.controlsInactiveHandler=()=>this.sendEvents(!1)}get allowProgressBar(){return this.player.config.style.progressBar}get showCaptions(){return this.player.config.subtitles.active&&this.player.config.style.captions&&0{e=e.filter(e=>e.visible).reduce((e,t,i,r)=>{i=i===r.length-1,r=0e.order-t.order),rightControls:e.rightControls.sort((e,t)=>e.order-t.order),leftUsedSpace:e.leftUsedSpace,controlsSize:e.leftControls.length+e.rightControls.length}})([{element:Ya(e.smallPlay&&!this.player.config.playback.disablePause,()=>p``),visible:e.smallPlay&&!this.player.config.playback.disablePause,space:10,order:1},{element:Ya(e.rewind&&!this.allowMenuDisplay,()=>p``),visible:e.rewind&&!this.allowMenuDisplay,space:10,order:2},{element:Ya(e.videoTime,()=>p``),visible:e.videoTime,space:10,order:3},{element:Ya(this.allowProgressBar,()=>p``),visible:this.allowProgressBar,space:this.allowMenuDisplay?70:60,order:5},{element:Ya(e.volume,()=>p``),visible:e.volume,space:10,order:4},{element:Ya(this.showCaptions,()=>p``),visible:this.showCaptions,space:10,preferRight:!0,order:6},{element:Ya(e.speed,()=>p``),visible:e.speed,space:10,preferRight:!0,order:7},{element:Ya(e.fullscreen||t,()=>p``),visible:e.fullscreen||t,space:10,preferRight:!0,order:8}],this.allowMenuDisplay)}get isMenuVisible(){var{rightControls:e,leftUsedSpace:t}=this.controlsOptions;return 1
${Ya(e.rewind,()=>p``,()=>p` `)}
 
${Ya(e.forward,()=>p``,()=>p` `)}
${Ya(!this.showMenu,()=>t.map(e=>e.element))}
${Ya(!this.allowMenuDisplay||!this.isMenuVisible,()=>i.map(e=>e.element))} ${Ya(this.allowMenuDisplay&&this.isMenuVisible,()=>this.renderMenu(i))}
`}renderMenu(e){return p` ${Ya(this.showMenu,()=>e.map(e=>e.element))}
`}sendEvents(i){var e=this.player.config.style,e={forward:e.forward,fullscreen:e.fullscreen,progressBar:e.progressBar,rewind:e.rewind,smallplay:e.smallPlay,speed:e.speed,videoTime:e.videoTime,volume:e.volume},e=Object.entries(e).reduce((e,t)=>Object.assign(Object.assign({},e),{[t[0]]:t[1]&&i}),{});this.player.dispatchEvent(new h.Items({items:e}))}createRenderRoot(){return this}};fi.componentName="Controls",fi.reRenderOn=[o.Resize],fi.styles=[Wa,si.styles,y.styles,Zt.styles,ii.styles,ti.styles,ui.styles,b.styles,hi.styles,ci.styles],pi([Ga()],fi.prototype,"showMenu",void 0),fi=pi([Ka("vturb-controls")],fi);var uo,po,za=e`.fakebar{background-color:var(--fakebar-background-color,#fff);bottom:0;height:var(--fakebar-height,10px);left:0;opacity:.8;position:absolute;transition:width .1s var(--base-transition-cubic,ease);width:0;z-index:var(--fakebar-index,100)}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.visibility=!1;var e=null!=(e=null==(e=this.player.video)?void 0:e.duration)?e:0,e=this.player.video.currentTime/e||0;this.setProgress(e)},this.getVideoDuration=()=>{var e;return null!=(e=null==(e=this.player.video)?void 0:e.duration)?e:0},this.onPause=()=>{this.logger.info("Fakebar onPause"),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.timer&&(clearInterval(this.timer),this.timer=null)},this.onPlay=()=>{this.logger.info("Fakebar onPlay"),this.player.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),this.timer||(this.timer=setInterval(this.sync,40))},this.onTimeUpdate=()=>{this.logger.info("Fakebar onTimeUpdate"),this.sync()},this.setProgress=e=>{var t,e=fo(this,uo,"f").call(this,e);this.progress=e,this.player.dispatchEvent(new Q.Progress({progress:e})),null!=(t=null==(t=this.fakebar)?void 0:t.style)&&t.setProperty("--fakebar-width",e+"%")},this.sync=()=>{var e;this.player.controllers.blockers.noneBlocker("played")||!this.player.video||(e=this.player.video.duration||0,(e=(this.player.video.currentTime||0)/e||0)===1/0)?(this.setProgress(0),this.visibility=!1):(this.visibility=!0,this.setProgress(e),this.player.dispatchEvent(new Q.Width({width:e})))},uo.set(this,e=>100*Math.pow(1-(e-=1)*e,1/this.alpha)),po.set(this,()=>{var e=this.player.config.fakeBar.alpha;this.alpha=Math.min(3,Math.max(2,e))})}connectedCallback(){var e;super.connectedCallback(),this.logger.info("connectedCallback"),fo(this,po,"f").call(this),null!=(e=this.player.player)&&e.classList.add("with-fakebar"),this.player.controllers.blockers.noneBlocker("played")?this.player.addEventListener(a.Loadeddata,this.defaultConfig):this.timer=setInterval(this.sync,40),this.player.dispatchEvent(new Q.Active),this.player.addEventListener(a.Play,this.onPlay),this.player.addEventListener(a.Pause,this.onPause)}disconnectedCallback(){this.logger.info("disconnectedCallback"),super.disconnectedCallback(),this.player.dispatchEvent(new Q.Inactive),this.timer&&(clearInterval(this.timer),this.timer=null)}render(){return this.visibility?p`
`:null}},mi=(uo=new WeakMap,po=new WeakMap,gi.componentName="Fakebar",gi.styles=[za],Va([Ha(".fakebar")],gi.prototype,"fakebar",void 0),Va([Ga()],gi.prototype,"visibility",void 0),gi=Va([Ka("vturb-fakebar")],gi),(e,t)=>{let i=e;try{(e=>{e=(new DOMParser).parseFromString(e,"text/html").body;return!(!(e&&e.textContent&&e.textContent.trim())||e.children.length<=0)})(e)||(i=atob(e),i=(new TextDecoder).decode(Uint8Array.from(i,e=>e.charCodeAt(0))))}catch(e){t.warn("Error decoding headline HTML:",e)}return i}),vi=(Wa=e`:host{color:#000;display:block;font-family:inherit;font-size:18px;text-align:left;width:100%}@media (max-width:768px){:host{font-size:14px}}.headline{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:0 auto;width:fit-content}.headline *{box-sizing:border-box;margin:0;padding:0}.headline img{margin-bottom:var(--headline-margin-bottom,30px)}.headline h1{margin:0}.headline-content{display:flex;flex-direction:column;font-family:var(--headline-font-family,inherit);font-size:var(--headline-font-size,inherit);margin:var(--headline-margin,0);width:var(--headline-width,100%)}.headline-content *{letter-spacing:var(--headline-letter-spacing,0);line-height:var(--headline-line-height,100%)!important}picture img{background-color:transparent;max-width:100%}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3e+"px").join(" "),"--headline-width":`${null!=(t=null==(t=e.layout)?void 0:t.width)?t:100}%`}),i=mi(e.html,this.logger);return p`
`}renderImage(e){var t=e.isResponsive&&e.urlMobile;return p`
${Ya(t,()=>p` `)} ${e.name}
`}render(){if(this.headline&&"none"!==this.headline.name)return"html"===this.headline.type?this.renderHtml(this.headline):this.renderImage(this.headline)}willUpdate(e){e.has("headline")&&this.headline&&"html"===this.headline.type&&Vt(this.headline.typography)}}),yi=(vi.styles=[Wa],za([ja({type:Object})],vi.prototype,"headline",void 0),vi=za([Ka("vturb-headline")],vi),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{this.confirmDestination(e)&&(this.projected=e.detail.content||[],e.detail.onMount)&&e.detail.onMount(this)}}confirmDestination(e){return this.name||console.warn("This destination has not been named."),e.detail.destination===this.name&&(e.stopPropagation(),!0)}connectedCallback(){super.connectedCallback(),document.addEventListener("portal-open",this.updatePortalContent,!0),document.addEventListener("portal-close",this.updatePortalContent,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("portal-open",this.updatePortalContent,!0),document.removeEventListener("portal-close",this.updatePortalContent,!0)}render(){return p`${this.projected}`}createRenderRoot(){return this}},Ei=(bi.styles=[e` :host { } `],yi([ja({type:String})],bi.prototype,"name",void 0),yi([ja({type:Array})],bi.prototype,"projected",void 0),bi=yi([Ka("portal-destination")],bi),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3 `}};function go(e,t){return new CustomEvent(e,{composed:!0,detail:t})}Ei([ja({type:String})],Ti.prototype,"destination",void 0),Ei([ja({type:Function})],Ti.prototype,"onMount",void 0),Ei([ja({type:String})],Ti.prototype,"reference",void 0),Ti=Ei([Ka("portal-entrance")],Ti);let wi=e=>/^(https?:\/\/)?(www\.)?[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(:[0-9]+)?(.*)$/gi.test(e.trim()),Si=e=>/^(http:\/\/)?(www\.)?localhost:[0-9]{1,}(.*)$/gi.test(e.trim()),ki=e=>/^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,}\.[a-z]{2,}\b(.*)$/gi.test(e.trim())||Si(e.trim())||wi(e.trim()),_i=({logger:t,search:e})=>{try{if(!e.match(/[?&]vl=/))return null;t.debug("Parsing location vl param");var i=new URLSearchParams(e).get("vl");return i&&ki(decodeURIComponent(i))?new URL(decodeURIComponent(i)):null}catch(e){return t.error("Error parsing location vl param",e),null}},Li=({isIframe:e,logger:t})=>{var i=e||window.location!==window.parent.location;if(t.group("debug","getPlayerLocation").message("isUsingIframe",i).message("payload",{isIframe:e,isSameOrigin:window.location===window.parent.location}).end(),!i)return new URL(window.location.href);try{if(window.parent.location.href)return new URL(window.parent.location.href)}catch(e){t.warn("Error getting iframe domain from parent location",e)}try{if(ki(document.referrer))return new URL(document.referrer)}catch(e){t.error("Error getting iframe domain from referrer",e)}e=_i({logger:t,search:window.location.search});return null!=e&&e.hostname?e:new URL(window.location.href)};var Va=e`.blocked{background-color:#202020;box-shadow:inset 0 0 160px 0 #000;left:0;overflow:hidden;top:0;z-index:1000}.blocked,.blocked__logo{height:100%;position:absolute;width:100%}.blocked__logo svg{height:80%;left:50%;opacity:.035;position:absolute;top:50%;transform:translate(-50%,-50%);width:80%}.blocked__logo svg path{fill:#fff}.blocked__content{left:50%;max-width:32em;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:80%}.blocked__msg{color:#ccc;font-size:1.2em;text-align:center;text-shadow:0 2px 0 #000,0 3px 3px #000;white-space:pre-line}.blocked__button{background:#f1582d;border-radius:5px;color:#fff;display:inline-block;font-size:1em;font-weight:600;margin:1.2em auto 0;padding:.7em 1.5em;text-decoration:none;transition:transform .2s}.blocked__button:hover{transform:scale(1.05)}@media (max-width:480px){.blocked__msg{font-size:1em}.blocked__button{font-size:.8em}}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3mo(this,void 0,void 0,function*(){var e;this.player.removeEventListener(o.Ready,this.check);let t={domain:Li({isIframe:this.player.isIframe,logger:this.logger}).hostname,m3u8_path:null==(e=this.player.hlsVideo)?void 0:e.m3u8,player_id:this.player.config.id};this.logger.group("debug","details to request").message("domain",t.domain).message("m3u8_path",t.m3u8_path).message("player_id",t.player_id).end(),fetch(this.URL,{body:JSON.stringify(t),method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"}}).then(e=>e.status).then(e=>{try{this.exceptionByStatus(e),this.player.dispatchEvent(new P.Allowed)}catch(e){e instanceof Error&&"LicenseError"===e.name&&(this.logger.warn(`license error(${e.status}): `+e.message,e),this.error=e,this.player.dispatchEvent(new P.Denied({reason:e.message})),this.player.changeLicense(!1))}}).catch(e=>{this.logger.network("License response error",{request:{url:this.URL,method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},body:t},response:e instanceof Response?e:void 0})})})}connectedCallback(){super.connectedCallback(),this.player.addEventListener(o.Ready,this.check,{once:!0})}disconnectedCallback(){super.disconnectedCallback(),this.player.removeEventListener(o.Ready,this.check)}exceptionByStatus(e){switch(e){case 401:throw new Gg(v("license.blocked.by_rule"),401);case 403:throw new Gg(v("license.blocked.payment_open"),403);case 406:throw new Gg(v("license.blocked.domain_not_allowed"),406);case 451:throw new Gg(v("license.blocked.indefinite_block"),451)}}render(){if(this.error)return p` `}};function*vo(t,i){if(void 0!==t){let e=0;for(var r of t)yield i(r,e++)}}Ai.componentName="License",Ai.styles=[Va],Wa([Ga()],Ai.prototype,"error",void 0),Ai=Wa([Ka("vturb-license")],Ai);let Ri=(e,t)=>{var i,r,s=e._$AN;if(void 0===s)return!1;for(let e of s)null!=(r=(i=e)._$AO)&&r.call(i,t,!1),Ri(e,t);return!0},Ii=e=>{let t,i;for(;void 0!==(t=e._$AM)&&((i=t._$AN).delete(e),e=t,0===(null==i?void 0:i.size)););},Pi=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),Ci(t)}};function yo(e){void 0!==this._$AN?(Ii(this),this._$AM=e,Pi(this)):this._$AM=e}function bo(e,t=!1,i=0){var r=this._$AH,s=this._$AN;if(void 0!==s&&0!==s.size)if(t)if(Array.isArray(r))for(let e=i;e{e.type==St.CHILD&&(null==e._$AP&&(e._$AP=bo),null==e._$AQ)&&(e._$AQ=yo)};class Hg extends Ng{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,i){super._$AT(e,t,i),Pi(this),this.isConnected=e._$AU}_$AO(e,t=!0){var i;e!==this.isConnected&&((this.isConnected=e)?null!=(i=this.reconnected)&&i.call(this):null!=(i=this.disconnected)&&i.call(this)),t&&(Ri(this,e),Ii(this))}setValue(e){var t;void 0===this._$Ct.strings?this._$Ct._$AI(e,this):((t=[...this._$Ct._$AH])[this._$Ci]=e,this._$Ct._$AI(t,this,0))}disconnected(){}reconnected(){}}class zg{}let xi=new WeakMap,Di=kt(class extends Hg{render(e){return f}update(e,[t]){var i=t!==this.G;return i&&void 0!==this.G&&this.ot(void 0),!i&&this.rt===this.lt||(this.G=t,this.dt=null==(i=e.options)?void 0:i.host,this.ot(this.lt=e.element)),f}ot(t){if("function"==typeof this.G){var i=null!=(i=this.dt)?i:globalThis;let e=xi.get(i);void 0===e&&(e=new WeakMap,xi.set(i,e)),void 0!==e.get(this.G)&&this.G.call(this.dt,void 0),e.set(this.G,t),void 0!==t&&this.G.call(this.dt,t)}else this.G.value=t}get rt(){var e;return"function"==typeof this.G?null==(e=xi.get(null!=(e=this.dt)?e:globalThis))?void 0:e.get(this.G):null==(e=this.G)?void 0:e.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}}),Oi=["borderRadius","borderWidth","fontSize","height","width","left","top"],Mi=class{constructor(e){var t;this.options=e,this.container=null!=(t=e.container)?t:e.player.video,this.video=this.options.player.video,this.els=this.getElementsToScale(e.elements)}getElementsToScale(e){return Array.prototype.map.call(e,t=>{let i={domEel:t,original:{}};return Oi.forEach(e=>{i.original[e]=parseInt(t.style[e]||"0",10)}),i})}ratio(){return Math.min(this.video.clientWidth/this.options.width,this.video.clientHeight/this.options.height)}repositionElement(e,t){var i=this.container.clientWidth/this.options.width,r=this.container.clientHeight/this.options.height;e.domEel.style.left=e.original.left*i+(e.original.width*i/2-e.original.width*t/2)+"px",e.domEel.style.top=e.original.top*r+(e.original.height*r/2-e.original.height*t/2)+"px"}scale(){this.scaleBy(this.ratio())}scaleBy(t){this.container.style.width=this.options.width*t+"px",this.container.style.height=this.options.height*t+"px",this.container.style.left=(this.video.clientWidth-this.container.clientWidth)/2+"px",this.container.style.top=(this.video.clientHeight-this.container.clientHeight)/2+"px",this.els.forEach(e=>{this.scaleElement(e,t)})}scaleElement(i,r){let s=["top","left"];Object.entries(i.original).forEach(([e,t])=>{s.includes(e)||(i.domEel.style[e]=t*r+"px")}),this.repositionElement(i,r)}},Fi=class{constructor(e,t){this.options=e,this.logger=t,this.logger.group("trace","RichElement.MaxScaleFactorCalculator.constructor").message("options",e).end(),this.maxFactor=this.calculateMaxFactor(),this.proportionalScale=this.calcElementsProportionalScale(),this.multiplier=(1-this.proportionalScale)/5;t=this.options.width{t=this.lowerBorderDistance(t);return Math.min(e,t)},0)}calcElementsProportionalScale(){var{bottom:e,left:t,right:i,top:r}=this.maxBorderDistanceOfAllElements(),i=Math.max((i-t)/this.options.width,(e-r)/this.options.height);return this.logger.group("trace","RichElement.MaxScaleFactorCalculator.calcElementsProportionalScale").message("result",i).end(),i}calculateMaxFactor(){var e=this.bestElementToCalculate(),t=1/(2*e/this.options.width-1)*-1,i=1/(2*e/this.options.height-1)*-1;return this.logger.group("trace","RichElement.MaxScaleFactorCalculator.calculateMaxFactor").message("distance",e).message("distanceWidth",t).message("distanceHeight",i).message("maxFactor",Math.max(t,i)).message("proportionalScale",this.proportionalScale).end(),Math.max(t,i)}lowerBorderDistance(e){var{height:t,width:i}=this.options,e=this.mountReactFromRichElement(e);return this.logger.group("trace","RichElement.MaxScaleFactorCalculator.lowerBorderDistance").message("rect",e).end(),Math.min(e.left,e.top,i-e.right,t-e.bottom)}maxBorderDistanceOfAllElements(){var e=this.options.elements.map(e=>this.mountReactFromRichElement(e)),t=e.map(e=>e.left),i=e.map(e=>e.right),r=e.map(e=>e.top);return{bottom:e.map(e=>e.bottom).reduce((e,t)=>Math.max(e,t),0),left:t.reduce((e,t)=>Math.min(e,t),0),right:i.reduce((e,t)=>Math.max(e,t),0),top:r.reduce((e,t)=>Math.min(e,t),0)}}},Ni=class{constructor(e){var t;this.options=e,this.container=null!=(t=e.container)?t:null==(t=e.player)?void 0:t.video}compareConatinerScale(e){var t=+this.container.getBoundingClientRect().width/this.options.width;return this.options.logger.group("trace","NativeScaler.compareContainerScale").message("containerRatio",t).message("ratio",e).end(),Math.max(e,t)}ratio(){var e=this.container.getBoundingClientRect(),t=Math.min(+e.width/this.options.width,+e.height/this.options.height),i=Math.max(+e.width/this.options.width,+e.height/this.options.height);return this.options.logger.group("trace","NativeScaler.ratio").message("ratioMin",t).message("ratioMax",i).message("rect",e).message("width",this.options.width).message("height",this.options.height).end(),t}scale(){this.scaleBy(this.ratio())}scaleBy(e){let t=this.compareConatinerScale(e);Array.prototype.forEach.call(this.options.elements,e=>{this.scaleElement(e,t)})}scaleElement(e,t){e.style.scale=t.toString(),e.style.transformOrigin="top left",e.style.left=(this.container.clientWidth-e.clientWidth*t)/2+"px",e.style.top=(this.container.clientHeight-e.clientHeight*t)/2+"px"}},Ui=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3`}createRenderRoot(){return this}},Bi=(Ui([ja()],$i.prototype,"props",void 0),$i=Ui([Ka("rich-element-box")],$i),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.player.logger} href=${e.properties.link.url} id=${e.id} image_url=${e.properties.src} > `:p`${e.properties.alt}`}render(){return p` ${this.renderImage(this.props)} `}createRenderRoot(){return this}},ji=(Bi([ja({type:Object})],Vi.prototype,"props",void 0),Bi([ja({type:Object})],Vi.prototype,"player",void 0),Vi=Bi([Ka("rich-element-image")],Vi),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3 ${this.props.properties.value} `}createRenderRoot(){return this}},Hi=(ji([ja()],Gi.prototype,"props",void 0),Gi=ji([Ka("rich-element-text")],Gi),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3e+"px").join(" "),"--anchor-button-border-radius":this.props.properties.styles.border_radius+"px","--anchor-button-font-size":this.props.properties.typography.size+"px","--anchor-button-line-height":this.props.properties.typography.line_height+"%","--anchor-button-letter-spacing":this.props.properties.typography.letter_spacing+"px","--anchor-button-font-family":this.props.properties.typography.family,"--anchor-button-font-weight":null!=(e=this.props.properties.typography.weight)?e:400,"--anchor-button-shadow-horizontal":this.props.properties.styles.shadow.horizontal+"px","--anchor-button-shadow-vertical":this.props.properties.styles.shadow.vertical+"px","--anchor-button-shadow-blur":this.props.properties.styles.shadow.blur+"px","--anchor-button-shadow-spread":this.props.properties.styles.shadow.spread+"px","--anchor-button-shadow-color":this.props.properties.styles.shadow.color});return p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.player.logger} content=${this.props.properties.content} href=${this.props.properties.url||""} id=${this.id} style=${e} > `}createRenderRoot(){return this}};Hi([ja({type:Object})],zi.prototype,"props",void 0),Hi([ja({type:Object})],zi.prototype,"player",void 0),zi=Hi([Ka("rich-element-button")],zi);var Eo,To,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{try{return CSS.supports("scale: 0.5")&&CSS.supports("transform-origin: top left")}catch(e){return!1}})(),this.containerRef=new zg,this.isMobile=d(),this.scaleInterval=0,this.scale=()=>wo(this,void 0,void 0,function*(){if(this.scaler){var e=this.scaler.ratio();let t=this.logger.group("trace",`Ratio Start: ${this.player.config.video.width} ---- `+e);var i=null==(i=this.factorCalculator)?void 0:i.bestFactor(e,e=>t.message("details",e));t.message("ratio",i),i&&(i=Math.min(Math.max(i,e),this.factorCalculator.maxFactor),t.message("selected ratio",i),this.scaler.scaleBy(i)),t.end()}}),Eo.set(this,()=>{this.containerRef.value&&this.useScaler(this.containerRef.value)}),this.renderElement=e=>"image"===e.type?p``:"text"===e.type?p``:"box"===e.type?p``:"button"===e.type?p``:void 0}connectedCallback(){super.connectedCallback(),this.resizeObserver=new ResizeObserver(So(this,Eo,"f")),this.resizeObserver.observe(this.player.player),document.addEventListener("DOMContentLoaded",So(this,Eo,"f")),window.addEventListener("resize",So(this,Eo,"f")),this.player.addEventListener(o.Resize,So(this,Eo,"f")),So(this,Eo,"f").call(this),this.scaleInterval&&(this.scaleIntervalId=window.setInterval(So(this,Eo,"f"),this.scaleInterval))}disconnectedCallback(){var e;super.disconnectedCallback(),document.removeEventListener("DOMContentLoaded",So(this,Eo,"f")),window.removeEventListener("resize",So(this,Eo,"f")),null!=(e=this.player)&&e.removeEventListener(o.Resize,So(this,Eo,"f")),null!=(e=this.resizeObserver)&&e.disconnect(),this.scaleIntervalId&&(window.clearInterval(this.scaleIntervalId),this.scaleIntervalId=void 0),this.scaler=void 0,this.factorCalculator=void 0}render(){var e=g({display:"block",height:this.player.config.video.height+"px",left:0,overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,width:this.player.config.video.width+"px",zIndex:"1000"});return p`
${vo(this.elements.sort((e,t)=>e.order-t.order),this.renderElement)}
`}updated(){this.scale()}createRenderRoot(){return this}useScaler(i){return wo(this,void 0,void 0,function*(){this.logger.trace("useScaler",this.name);var e={height:this.player.config.video.height,player:this.player,width:this.player.config.video.width},t=Array.from(this.elementsHtml),e=(this.canUseScale?(this.logger.trace("Using NativeScaler"),this.scaler=new Ni(Object.assign(Object.assign({},e),{elements:[i],logger:this.logger}))):this.scaler||(this.logger.trace("Using MakeshiftScaler"),this.scaler=new Mi(Object.assign(Object.assign({},e),{container:i,elements:t,logger:this.logger}))),{elements:this.elements,height:this.player.config.video.height,width:this.player.config.video.width});this.factorCalculator=null!=(t=this.factorCalculator)?t:new Fi(e,this.logger),this.scale()})}};Eo=new WeakMap,Ki.componentName="RichElement",Ki.styles=e``,za([ja({attribute:!1,type:Object})],Ki.prototype,"elements",void 0),za([(To="rich-element-image > *, rich-element-text > *, rich-element-box > *, rich-element-button > *",wt({descriptor:e=>({get(){var e;return null!=(e=null==(e=this.renderRoot)?void 0:e.querySelectorAll(To))?e:[]},enumerable:!0,configurable:!0})}))],Ki.prototype,"elementsHtml",void 0),za([ja({attribute:"name",reflect:!0,type:String})],Ki.prototype,"name",void 0),za([ja({type:Number})],Ki.prototype,"scaleInterval",void 0),Ki=za([Ka("rich-element")],Ki);class Kg extends Ng{constructor(e){if(super(e),this.et=f,e.type!==St.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===f||null==e)return this.ft=void 0,this.et=e;if(e===qe)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");return e===this.et?this.ft:(e=[this.et=e],this.ft={_$litType$:this.constructor.resultType,strings:e.raw=e,values:[]})}}Kg.directiveName="unsafeHTML",Kg.resultType=1;let Wi=kt(Kg),Yi=e=>{var t,i,r,s,a,n,o,l,h,d;return"pulse"===(null==e?void 0:e.animation)?(i=null!=(i=null==(i=(i=e).properties)?void 0:i.speed)?i:1,t=c({prefix:"pulse-"}),i=` @keyframes animation-${t} { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .${t} { animation: animation-${t} ${4/i}s infinite; } `,{className:t,style:p``}):"glow"===(null==e?void 0:e.animation)?(i=null!=(i=null==(i=(t=e).properties)?void 0:i.speed)?i:1,t=null!=(t=null==(t=t.properties)?void 0:t.size)?t:4,r=c({prefix:"glow-"}),i=` .${r} .rich-element-container :is(rich-element-box, rich-element-image):first-child :is(.rich-element-box, .rich-element-image):before { content: ''; background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); position: absolute; top: -${t}px; left: -${t}px; background-size: 500%; z-index: -1; filter: blur(${1.25*t}px); width: calc(100% - ${t*t}px); height: calc(100% - ${t*t}px); animation: animation-${r} ${75/i}s linear infinite; border-radius: ${2.5*t}px; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; padding: ${t*t}px; } .${r} picture.rich-element-image { font-size:0; color:transparent; position: relative; content: ' '; } @keyframes animation-${r} { 0% { background-position: 0 0; } 50% { background-position: 400% 0; } 100% { background-position: 0 0; } } `,{className:r,style:p``}):"slide-horizontal"===(null==e?void 0:e.animation)?(s=null!=(s=null==(s=(r=e).properties)?void 0:s.speed)?s:1,r=null!=(r=null==(r=r.properties)?void 0:r.distance)?r:3,a=c({prefix:"slide-h-"}),r=` @keyframes animation-${a} { 0% { transform: translateX(-${r}%); } 50% { transform: translateX(${r}%); } 100% { transform: translateX(-${r}%); } } .${a} { position: absolute; transform-origin: center center; animation: animation-${a} ${8/s}s var(--base-transition-cubic) infinite; } `,{className:a,style:p``}):"slide-vertical"===(null==e?void 0:e.animation)?(a=null!=(a=null==(a=(s=e).properties)?void 0:a.speed)?a:1,s=null!=(s=null==(s=s.properties)?void 0:s.distance)?s:3,n=c({prefix:"slide-v-"}),s=` @keyframes animation-${n} { 0% { transform: translateY(-${s}%); } 50% { transform: translateY(${s}%); } 100% { transform: translateY(-${s}%); } } .${n} { position: absolute; transform-origin: center center; animation: animation-${n} ${8/a}s var(--base-transition-cubic) infinite; } `,{className:n,style:p``}):"head-shake"===(null==e?void 0:e.animation)?(o=null!=(o=null==(o=(n=e).properties)?void 0:o.speed)?o:1,n=null!=(n=null==(n=n.properties)?void 0:n.distance)?n:6,l=c({prefix:"head-shake-"}),n=` @keyframes animation-${l} { 0% { transform: translateX(0); } 6.5% { transform: translateX(-${n}px) rotateY(-${1.5*n}deg); } 18.5% { transform: translateX(${.83333333*n}px) rotateY(${1.16666667*n}deg); } 31.5% { transform: translateX(-${.5*n}px) rotateY(-${.83333333*n}deg); } 43.5% { transform: translateX(${.333*n}px) rotateY(${.5*n}deg); } 50% { transform: translateX(0); } } .${l} { position: absolute; transform-origin: center center; animation: animation-${l} ${10/o}s ease-in-out infinite; } `,{className:l,style:p``}):"tada"===(null==e?void 0:e.animation)?(l=null!=(l=null==(l=(o=e).properties)?void 0:l.speed)?l:1,o=null!=(o=null==(o=o.properties)?void 0:o.distance)?o:6,h=c({prefix:"tada-"}),o=` @keyframes animation-${h} { from { transform: scale3d(1, 1, 1); } 8% { transform: scale3d(0.98, 0.98, 0.98) rotate3d(0, 0, 1, -${o=3*(o/5)}deg); } 16%, 32%, 48%, 64% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, ${o}deg); } 24%, 40%, 56%, 72% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -${o}deg); } 80%, 0% { transform: scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg); } to { transform: scale3d(1, 1, 1); } } .${h} { position: absolute; transform-origin: center center; animation-name: animation-${h}; animation-duration: ${10/l}s; animation-timing-function: linear; animation-iteration-count: infinite; } `,{className:h,style:p``}):"swing"===(null==e?void 0:e.animation)?(e=null!=(e=null==(e=(h=e).properties)?void 0:e.speed)?e:1,h=null!=(h=null==(h=h.properties)?void 0:h.distance)?h:6,d=c({prefix:"swing-"}),h=` @keyframes animation-${d} { from { transform: rotate3d(0, 0, 1, 0deg); } 15% { transform: rotate3d(0, 0, 1, ${15*(h/=5)}deg); } 30% { transform: rotate3d(0, 0, 1, -${10*h}deg); } 45% { transform: rotate3d(0, 0, 1, ${5*h}deg); } 60% { transform: rotate3d(0, 0, 1, -${5*h}deg); } 75% { transform: rotate3d(0, 0, 1, 0deg); } to { transform: rotate3d(0, 0, 1, 0deg); } } .${d} { position: absolute; transform-origin: center center; animation-name: animation-${d}; animation-duration: ${10/e}s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; } `,{className:d,style:p``}):{className:"",style:p``}},qi=e`vturb-headline{display:var(--headlines-display,var(--elements-display,block));height:var(--headlines-height,var(--elements-height));opacity:var(--headlines-opacity,var(--elements-opacity,1))}vturb-bigplay,vturb-call-action,vturb-call-action-v2,vturb-controls,vturb-minihook,vturb-smartautoplay,vturb-thumbsniper{height:var(--elements-height);opacity:var(--elements-opacity,1)}vturb-anchor-button{box-sizing:border-box;cursor:pointer;display:block;font-size:var(--anchor-button-base-font-size);pointer-events:all!important;text-align:center;z-index:var(--anchor-button-zindex)}.smartplayer-anchor-button:not(.smartplayer-anchor-button--image){background-color:var(--anchor-button-background-color,var(--style-background));border:0 solid transparent;border-radius:var(--anchor-button-border-radius,5px);color:var(--anchor-button-color,var(--style-foreground));display:var(--anchor-button-display,inline-block);font-family:var(--anchor-button-font-family,var(--style-font-family));font-size:var(--anchor-button-font-size,1em);font-weight:var(--anchor-button-font-weight,700);line-height:var(--anchor-button-line-height,1.2);padding:var(--anchor-button-padding,1.25em);pointer-events:all;text-align:center;text-decoration:none;transition:all .2s ease-in-out}.smartplayer-anchor-button:not(.smartplayer-anchor-button--image):hover{background-color:var(--anchor-button-background-color-hover,var(--anchor-button-background-color));color:var(--anchor-button-color-hover,var(--anchor-button-color))}.smartplayer-anchor-button:not(.smartplayer-anchor-button--image).smartplayer-anchor-button--lg{font-size:var(--anchor-button-font-size-lg);padding:var(--anchor-button-padding-lg)}.smartplayer-anchor-button:not(.smartplayer-anchor-button--image).smartplayer-anchor-button--md{font-size:var(--anchor-button-font-size-md);padding:var(--anchor-button-padding-md)}.smartplayer-anchor-button:not(.smartplayer-anchor-button--image).smartplayer-anchor-button--sm{font-size:var(--anchor-button-font-size-sm);padding:var(--anchor-button-padding-sm)}.smartplayer-anchor-button.smartplayer-anchor-button--shadow{box-shadow:var(--anchor-button-shadow-horizontal,0) var(--anchor-button-shadow-vertical,0) var(--anchor-button-shadow-blur,0) var(--anchor-button-shadow-spread,0) var(--anchor-button-shadow-color,rgba(0,0,0,.25))}.smartplayer-anchor-button.smartplayer-anchor-button--image,.smartplayer-anchor-button.smartplayer-anchor-button--image img{display:block;height:100%;width:100%}.smartplayer-anchor-button.smartplayer-anchor-button--image img{object-fit:contain;object-position:center}`,E=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3e,this.onOpenUrl=()=>{}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("connected",{detail:this}))}disconnectedCallback(){super.disconnectedCallback(),this.dispatchEvent(new CustomEvent("disconnected",{detail:this}))}handleScrollTo(){return ko(this,arguments,void 0,function*(e=0){this.logger.debug("scroll to anchor button",{content:this.content,offset:e}),yield de(this,{offset:e}),this.dispatchEvent(new CustomEvent("scrolling",{detail:this})),this.alreadyScrolled=!0})}handleUpdateHref(e){try{this.onUrlUpdater&&(e.stopPropagation(),this.href=this.onUrlUpdater(this.href,this))}catch(e){this.logger.error("Error updating href",e)}}handleOpenLink(e){try{e.stopPropagation(),this.handleUpdateHref(e),this.onOpenUrl&&this.onOpenUrl(e)}catch(e){this.logger.error("Error handling link click",e)}}render(){var{className:e,style:t}=Yi(this.animation),e=_t({["smartplayer-anchor-button--"+this.size]:!!this.size,"smartplayer-anchor-button--shadow":this.is_shadow_enabled,"smartplayer-anchor-button--image":!!this.image_url,[e]:!!this.animation});return p` this.handleOpenLink(e)} @mouseover=${e=>this.handleUpdateHref(e)} @touchstart=${e=>this.handleUpdateHref(e)} class="smartplayer-anchor-button ${e}" > ${this.image_url?p``:this.content} ${t} `}},Xi=(T.componentName="AnchorButton",E([ja({type:Object})],T.prototype,"animation",void 0),E([ja({type:String})],T.prototype,"href",void 0),E([ja({type:Boolean})],T.prototype,"open_in_new_tab",void 0),E([ja({type:String})],T.prototype,"content",void 0),E([ja({type:String})],T.prototype,"image_url",void 0),E([ja({type:String})],T.prototype,"size",void 0),E([ja({type:Boolean})],T.prototype,"is_shadow_enabled",void 0),E([ja({type:Object})],T.prototype,"logger",void 0),E([ja({type:Function})],T.prototype,"onUrlUpdater",void 0),E([ja({type:Function})],T.prototype,"onOpenUrl",void 0),T=E([Ka("vturb-anchor-button")],T),e`vturb-headline{display:var(--headlines-display,var(--elements-display,block));height:var(--headlines-height,var(--elements-height));opacity:var(--headlines-opacity,var(--elements-opacity,1))}vturb-bigplay,vturb-call-action,vturb-call-action-v2,vturb-controls,vturb-minihook,vturb-smartautoplay,vturb-thumbsniper{height:var(--elements-height);opacity:var(--elements-opacity,1)}vturb-custom-html{display:block}`),Qi=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3e,this.onOpenUrl=()=>{}}createRenderRoot(){return this.closed?this.attachShadow({mode:"closed"}):this}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("connected",{detail:this}))}disconnectedCallback(){super.disconnectedCallback(),this.dispatchEvent(new CustomEvent("disconnected",{detail:this}))}handleScrollTo(){return _o(this,arguments,void 0,function*(e=0){this.logger.debug("scroll to custom html",{content:this.content,offset:e}),yield de(this,{offset:e}),this.dispatchEvent(new CustomEvent("scrolling",{detail:this})),this.alreadyScrolled=!0})}handleUpdateHref(){this.onUrlUpdater&&this.querySelectorAll("a").forEach(e=>{try{e.href=this.onUrlUpdater(e.href,e)}catch(e){this.logger.error("Error updating href on custom html",e)}})}handleOpenLink(e){try{e.stopPropagation(),this.handleUpdateHref(),this.onOpenUrl&&this.onOpenUrl(e)}catch(e){this.logger.error("Error handling link click on custom html",e)}}render(){return p`
this.handleOpenLink(e)} @mouseover=${e=>this.handleUpdateHref()} @touchstart=${e=>this.handleUpdateHref()} .innerHTML=${mi(this.content,this.logger)} >
`}};Zi.componentName="CustomHtml",Qi([ja({type:Boolean})],Zi.prototype,"closed",void 0),Qi([ja({type:String})],Zi.prototype,"content",void 0),Qi([ja({type:Object})],Zi.prototype,"logger",void 0),Qi([ja({type:Function})],Zi.prototype,"onUrlUpdater",void 0),Qi([ja({type:Function})],Zi.prototype,"onOpenUrl",void 0),Zi=Qi([Ka("vturb-custom-html")],Zi);var Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{e.style.setProperty("display",t?"block":"none","important")}),this.dispatchEvent(new CustomEvent(t?"showing":"hiding",{detail:this})))}handleScrollTo(){return Lo(this,arguments,void 0,function*(e=0){var t=this.elements[0];t&&(this.logger.debug("scroll to delay element",{query:this.query,offset:e}),yield de(t,{offset:e}),this.dispatchEvent(new CustomEvent("scrolling",{detail:this})),this.alreadyScrolled=!0)})}render(){return p` `}};Ji.componentName="DelayElement",Va([ja({type:String})],Ji.prototype,"query",void 0),Va([ja({type:String})],Ji.prototype,"query_type",void 0),Va([ja({type:Object})],Ji.prototype,"logger",void 0),Ji=Va([Ka("vturb-delay-element")],Ji);var Ao,Wa=e`vturb-minihook{z-index:-1}#player .minihook,#player.show-smartautoplay{pointer-events:none}#player .minihook{height:100%;position:absolute;top:0;width:100%;z-index:9}#player .minihook .item{opacity:0;transition:opacity .8s ease-in}#player .minihook .item.show{opacity:1}#player .minihook .item.hide{opacity:0}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e;this.onTimeUpdate(new a.TimeupdateMs({time:(null==(e=this.player.video)?void 0:e.currentTime)||0}))},this.onTimeUpdate=e=>{e=e.detail.time;try{var t=[...this.activeItems.values()],i=this.getItems(e);In(t,i)||(this.activeItems=new Map(i.map(e=>[e.id,e])),this.dispatchEvent(new J.Items({items:i})))}catch(e){this.logger.error("Error updating active items by time",e)}}}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.addEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated)}disconnectedCallback(){super.disconnectedCallback(),this.player.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.removeEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated)}getItems(t){return this.player.controllers.blockers.noneBlocker("played")?[]:this.player.config.minihooks.items.filter(e=>t>=e.range.start&&t<=e.range.finish)}render(){return p`
${Mt(this.player.config.minihooks.items,e=>e.id,e=>p` `)}
`}},tr=(er.styles=[Wa],er.componentName="Minihook",za([Ga()],er.prototype,"activeItems",void 0),er=za([Ka("vturb-minihook")],er),e=>"string"==typeof e&&0Math.max(0,Math.min((e||0)/(t||1)*100,100)),rr=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{let e,t=this.videoCurrentTime,i=ir(t,this.videoDuration);null!=(e=this.player.config.pixels)&&e.items.forEach(e=>{this.shouldDispatchPixel(e,t,i)&&this.dispatchedPixels.add(this.formatDispatchedPixelId(e))})},this.onTimeUpdate=(e,t)=>{var i,t=t.detail.time,r=ir(t,this.videoDuration);"facebook"===e.type?(i=`View${r-r%Ao.continousPercentage}%`,this.shouldDispatchPixel(e,t,r,i)&&this.dispatchPixel(e,i),this.shouldDispatchPixel(e,t,r)&&this.dispatchPixel(e)):this.shouldDispatchPixel(e,t,r)&&(this.dispatchPixel(e),this.player.removeEventListener(a.Timeupdate,e.caller))}}get videoDuration(){var e;return(null==(e=this.player.video)?void 0:e.duration)||0}get videoCurrentTime(){var e;return(null==(e=this.player.video)?void 0:e.currentTime)||0}connectedCallback(){super.connectedCallback(),this.initFacebookPixel(),this.player.addEventListener(i.Continue,this.onCheckIfPixelsWasAlreadyDispatched)}disconnectedCallback(){var e;super.disconnectedCallback(),this.player.removeEventListener(i.Continue,this.onCheckIfPixelsWasAlreadyDispatched),null!=(e=this.player.config.pixels)&&e.items.forEach(e=>{e.caller&&this.player.removeEventListener(a.Timeupdate,e.caller)})}firstUpdated(){var e;null!=(e=this.player.config.pixels)&&e.items.forEach(e=>{this.setPixelCaller(e)})}render(){return null}setPixelCaller(t){t.caller||(t.caller=e=>this.onTimeUpdate(t,e),this.player.addEventListener(a.Timeupdate,t.caller))}updated(){var e;null!=(e=this.player.config.pixels)&&e.items.forEach(e=>{this.setPixelCaller(e)})}formatDispatchedPixelId(e,t){return t?e.id+"-"+t:e.id}dispatchPixel(e,t){switch(this.logger.group("debug",`dispatching pixel: ${e.id} `+(null!=t?t:"")).message("pixel",e).end(),e.type){case"custom":var i=this.doc.createRange().createContextualFragment(atob(e.customHtml));this.logger.debug("fragment",[i,atob(e.customHtml)]),this.doc.body.appendChild(i);break;case"facebook":this.win.fbq&&"function"==typeof this.win.fbq||this.initFacebookPixel(),this.win.fbq("trackSingleCustom",e.pixelId,null!=t?t:e.pixelValue);break;case"google":this.win.gtag&&"function"==typeof this.win.gtag||this.initGoogleTagManager(),this.win.gtag("event","conversion",{send_to:e.pixelId+"/"+e.pixelValue})}this.dispatchedPixels.add(this.formatDispatchedPixelId(e,t))}initFacebookPixel(){var e=null==(e=this.player.config.pixels)?void 0:e.items.filter(e=>"facebook"===e.type).map(e=>e.pixelId).filter((e,t,i)=>i.indexOf(e)===t);this.logger.group("debug","initializing Facebook Pixel").message("pixelIds",e).end();(()=>{if(!this.win.fbq){let t=this.win.fbq=function(...e){t.callMethod?t.callMethod(...e):t.queue.push(e)};this.win._fbq||(this.win._fbq=t),(t.push=t).loaded=!0,t.version="2.0",t.queue=[];var e=this.doc.createElement("script"),i=(e.async=!0,e.src="https://connect.facebook.net/en_US/fbevents.js",this.doc.getElementsByTagName("script")[0]);i.parentNode.insertBefore(e,i)}})(),e.forEach(e=>{this.win.fbq("init",e)}),this.win.fbq("track","PageView")}initGoogleTagManager(){var e=null==(e=this.player.config.pixels)?void 0:e.items.some(e=>"google"===e.type);if(e){var t=this.win.gtag&&"function"==typeof this.win.gtag,i=this.win.dataLayer&&"function"==typeof this.win.dataLayer.push,e=(this.logger.group("debug","initializing Google Tag Manager").message("hasGooglePixel",e).message("haveGoogleTagManager",t).message("haveDatalayer",i).end(),null==(e=this.player.config.pixels)?void 0:e.items.filter(e=>"google"===e.type).map(e=>e.pixelId).filter((e,t,i)=>i.indexOf(e)===t));if(i||(this.logger.info("Add Data Layer to page"),this.win.dataLayer=this.win.dataLayer||[]),!t){this.logger.info("Add Google Tag Manager to page"),this.logger.info("https://developers.google.com/tag-manager/quickstart");let t=this.win;t.gtag=function(...e){t.dataLayer.push(e)},t.gtag("js",new Date)}e.forEach(t=>{this.win.dataLayer.find(e=>e&&e.config&&e.config.send_to===t)||(this.win.gtag("config",t),document.head.innerHTML+=``)})}}shouldDispatchPixel(e,t,i,r){var s;return!(null==(s=this.player.config.pixels)||!s.active||!tr(r)&&this.dispatchedPixels.has(this.formatDispatchedPixelId(e))||(tr(r)?this.dispatchedPixels.has(this.formatDispatchedPixelId(e,r)):(s="time"===e.dispatchType?t:i,!(e.dispatchIn<=s))))}};sr.componentName="Pixels",sr.continousPercentage=5,rr([Ga()],sr.prototype,"dispatchedPixels",void 0),sr=Ao=rr([Ka("vturb-pixels")],sr);var Ro,Va=e`.resume{backdrop-filter:blur(var(--resume-blur,.3125em));background-color:var(--resume-background-color,rgba(0,0,0,.6));bottom:0;cursor:auto;font-size:var(--resume-font-size,1em);padding:.5em;top:0;z-index:var(--resume-index,9999)}.resume,.resume__content{left:0;position:absolute;right:0}.resume__content{text-align:center;top:50%;transform:translateY(-50%)}.resume__title{color:var(--resume-foreground-color,#fff);font-size:2.5em;font-weight:700;line-height:var(--resume-line-height,1.3);margin:0 .5em .8em;min-width:var(--resume-min-width,11.25em);text-align:center}.resume__actions{display:inline-block}.resume__actions>div{background:transparent;border:none;color:var(--resume-foreground-color,#fff);cursor:pointer;display:inline-table;margin:.8em;min-width:var(--resume-min-width,11.25em);opacity:1;padding:0;pointer-events:all;text-align:left;transition:opacity .2s ease}.m-w-360 .resume__actions>div,.m-w-480 .resume__actions>div,.m-w-550 .resume__actions>div{display:table;margin-bottom:1.2em}.resume__text{align-content:normal;font-size:1.4em;font-weight:700;line-height:1.1;padding:0 1em 0 .6em;text-align:left}.resume__icon,.resume__text{display:table-cell;vertical-align:middle}.resume__icon{align-items:center;border:.125em solid var(--resume-foreground-color,#fff);border-radius:50%;box-sizing:border-box;display:flex;fill:var(--resume-foreground-color,#fff);height:2.9em;justify-content:center;margin-right:.5em;padding:0;text-align:center;width:2.9em}.resume__icon svg{display:inline-block;height:1.875em;width:1.875em}.resume__play .resume__icon{padding:0 0 0 .125em}.resume__rewind .resume__icon{padding:.0625em .25em 0 .125em}.m-w-480 .resume__title,.m-w-550 .resume__title{font-size:1.8em;margin:.6em}.m-w-480 .resume__icon,.m-w-550 .resume__icon{height:3em;width:3em}.m-w-480 .resume__icon svg,.m-w-550 .resume__icon svg{height:1.7em;width:1.7em}.m-w-360 .resume__title{font-size:1.8em;margin-bottom:.4em}.m-w-360 .resume__icon{height:2.5em;width:2.5em}.m-w-360 .resume__icon svg{height:1.125em;width:1.125em}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{e.stopPropagation(),e.preventDefault()},this.updateResume=e=>{var t;this.player.controllers.blockers.noneBlocker("smartAutoPlay")&&null!=(t=this.player.video)&&t.currentTime&&5<=(null==(t=this.player.video)?void 0:t.currentTime)&&Ro.setResumePosition(this.player.config.id,this.player.store,(null==(t=this.player.video)?void 0:t.currentTime)||0)}}static shouldLoad(e){return e.active}static getResumePosition(e,t){return t.get(e+"-resume",0)}static setResumePosition(e,t,i){t.set(e+"-resume",i)}connectedCallback(){super.connectedCallback();var e=Ro.getResumePosition(this.player.config.id,this.player.store);this.player.config.resume.active&&e&&(this.player.dispatchEvent(new i.Active),this.player.controllers.blockers.block("resume"),this.logger.debug("Resume block: "+e),this.player.controls.seek(Math.max(e-this.lastTimeReduced,0))),this.player.addEventListener(a.Timeupdate,this.updateResume)}continue(e){e.stopPropagation(),this.player.controls.play(),this.player.dispatchEvent(new i.Continue),this.destroy()}destroy(){this.player.controllers.blockers.unblock("resume"),this.player.dispatchEvent(new i.Inactive),this.destroyed=!0}disconnectedCallback(){super.disconnectedCallback(),this.player.removeEventListener(a.Timeupdate,this.updateResume),this.player.controllers.blockers.unblock("resume")}render(){if(!this.player.controllers.blockers.noneBlocker("resume")&&!this.destroyed)return p`
${this.player.config.resume.title}
${ot} ${this.player.config.resume.play}
${lt} ${this.player.config.resume.replay}
`}restart(e){e.stopPropagation(),this.player.controls.seek(0),this.player.controls.play(),this.player.dispatchEvent(new i.Restart),this.destroy()}},nr=(ar.styles=[Va],Wa([Ga()],ar.prototype,"destroyed",void 0),ar=Ro=Wa([Ka("vturb-resume")],ar),()=>navigator.vendor&&-1{i&&e.removeByPattern(new RegExp(`^${t}(?:$|-(?!${i}$).+)$`))},lr=(za=e`#player.show-smartautoplay{pointer-events:none}#player.already-played .smartautoplay{display:none}#player.show-smartautoplay .smartautoplay{display:block}.smartautoplay{cursor:pointer;display:none;height:100%;position:absolute;top:0;width:100%;z-index:9999}.smartautoplay .controller,.smartautoplay .controller-mask{opacity:0!important;transform:translateY(100%)!important}.smartautoplay .smartautoplay *{cursor:pointer}`,(e,i)=>{let r;var t=new Promise((e,t)=>{r=setTimeout(()=>t(new Error("Timeout")),i)});return Promise.race([e,t]).finally(()=>clearTimeout(r))});var Io=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})},Po=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};let hr=i=>Po(void 0,void 0,void 0,function*(){var t=window.AudioContext||window.webkitAudioContext;if(t){let e=new t;if("suspended"===e.state)return lr(e.resume(),i).finally(()=>e.close())}});var Co=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class Wg extends lg{get probeConfig(){return this.host.config.backgroundProbe}get triggerEvents(){return d()?this.probeConfig.mobileTriggerEvents:this.probeConfig.triggerEvents}constructor(e){super(e),this.currentListeners=new Set,this.probeAttempts=0,this.probeTimeoutId=null,this.probeVideo=null,this.userInteractionDetected=!1,this.disableFeature=()=>{this.clearListeners(),this.clearProbeVideo(),this.userInteractionDetected=!1,this.host.dispatchEvent(new D.IframeTriggerUpdated({triggerEvents:[]})),this.host.removeEventListener(D.IframeUserInteraction,this.onUserInteraction),this.probeTimeoutId&&clearTimeout(this.probeTimeoutId)},this.enableFeature=()=>{var e;this.probeVideo=((e=document.createElement("video")).style.position="fixed",e.style.top="-1px",e.style.left="-1px",e.style.width="1px",e.style.height="1px",e.style.opacity="0",e.style.pointerEvents="none",e.style.zIndex="9",e.style.backgroundColor="transparent",e.style.display="block",e.style.objectFit="fill",e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex","-1"),e.src="https://cdn.converteai.net/1.mp4",e.loop=!1,e.muted=!1,e.playsInline=!0,document.body.appendChild(e),e),this.syncListeners(),this.host.dispatchEvent(new l.Metric({type:"background_autoplay_probe.initialized",value:1})),this.host.addEventListener(D.IframeUserInteraction,this.onUserInteraction)},this.isEnabled=()=>this.host.config.active&&this.probeConfig.enabled&&this.host.settings.autoUnmute,this.clearListeners=()=>{this.currentListeners.forEach(e=>document.removeEventListener(e,this.onUserInteraction)),this.currentListeners.clear()},this.clearProbeVideo=()=>{this.probeVideo&&(this.probeVideo.pause(),this.probeVideo.remove(),this.probeVideo=null)},this.onUserInteraction=()=>{this.userInteractionDetected||(this.logger.debug("User interaction detected, starting probes"),this.userInteractionDetected=!0,this.probeAttempts=0,this.host.dispatchEvent(new l.Metric({type:"background_autoplay_probe.started",value:1})),this.performProbe())},this.sheduleNextProbe=()=>{this.isEnabled()&&(this.probeTimeoutId=setTimeout(()=>this.performProbe(),this.probeConfig.probeInterval))},this.syncListeners=()=>{if(!this.isEnabled())return this.clearListeners();this.clearListeners(),this.host.dispatchEvent(new D.IframeTriggerUpdated({triggerEvents:this.triggerEvents})),this.triggerEvents.forEach(e=>{document.addEventListener(e,this.onUserInteraction,{passive:!0}),this.currentListeners.add(e)})},this.trackProperties("config","settings")}hostUpdate(e){(e.has("config")||e.has("settings"))&&(this.syncListeners(),this.reevaluateFeatureState())}attemptProbe(){return Co(this,void 0,void 0,function*(){try{return this.probeVideo?(this.logger.debug("Ensuring audio context is resumed"),yield hr(this.probeConfig.probeTimeout),this.logger.debug("Attempting autoplay probe"),e=this.probeVideo,i=this.probeConfig.probeTimeout,yield Io(void 0,void 0,void 0,function*(){return e.currentTime=0,lr(e.play(),i)}),this.logger.info("Background autoplay probe succeeded - audio autoplay is now possible"),this.host.dispatchEvent(new l.Metric({type:"background_autoplay_probe.success",value:1})),!0):!1}catch(e){var t=e instanceof Error?e.message:String(e);return t.includes("no supported sources")||t.includes("NotSupportedError")?(this.logger.info("No supported sources, but autoplay is not blocked - treating as success"),this.host.dispatchEvent(new l.Metric({type:"background_autoplay_probe.success",value:1})),!0):(this.logger.debug("Background autoplay probe failed",{error:e}),!1)}var e,i})}performProbe(){return Co(this,void 0,void 0,function*(){if(this.isEnabled()){if(this.probeAttempts++,this.probeAttempts>this.probeConfig.maxAttempts)return this.userInteractionDetected=!1,this.host.dispatchEvent(new l.Metric({type:"background_autoplay_probe.max_attempts_reached",value:1})),this.logger.debug("Max background autoplay probe attempts reached");if(!(yield this.attemptProbe()))return this.sheduleNextProbe();try{yield lr(this.host.attemptUnmutedPlayback(),this.probeConfig.probeTimeout),this.host.dispatchEvent(new l.Metric({type:"smartautoplay.background_probe_success",value:1}))}catch(e){this.logger.warn("Failed to play video with audio",e),this.host.dispatchEvent(new l.Metric({type:"smartautoplay.background_probe_failure",value:1})),this.sheduleNextProbe()}}})}}var Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3this.dispatchEvent(new D.IframeUserInteraction),this.onPlayerConfigUpdated=()=>{this.isPlayedOrInResume||(In(this.previousSettings,this.settings)?this.logger.debug("onPlayerConfigUpdated: no relevant changes, skipping reinit"):(this.logger.debug("onPlayerConfigUpdated: relevant changes detected, reinitializing",{previous:this.previousSettings,current:this.settings}),this.previousSettings=Object.assign({},this.settings),this.times=0,this.initializeAutoplay()))},this.onBlockerChanged=e=>{"resume"===e.detail.blocker?(this.logger.trace("destroy smartautoplay by resume blocker"),this.dispatchInactiveAutoplayEvent()):"smartAutoPlay"!==e.detail.blocker||this.isPlayedOrInResumeOrDestroyed||(this.player.dispatchEvent(new s.Active),this.logger.info("show smartautoplay by smartAutoPlay blocker"),this.initializeAutoplay())},this.attemptUnmutedPlayback=()=>xo(this,void 0,void 0,function*(){this.player.video&&!this.isPlayedOrInResumeOrDestroyed&&(this.logger.info("Background autoplay probe succeeded, attempting audio play"),this.player.video.muted=!1,yield this.player.video.play(),this.player.video.currentTime=0,this.dismountAutoplay())}),this.onSmartAutoPlayClick=e=>{this.logger.debug("click"),e.stopPropagation(),e.preventDefault(),this.dismountAutoplay()},this.onVideoTimeUpdate=()=>{var e,t;this.player.video&&(this.isPlayedOrInResumeOrDestroyed?(this.logger.warn("onVideoTimeUpdate: skipping seek operations, autoplay will be destroyed"),this.player.video.removeEventListener("timeupdate",this.onVideoTimeUpdate)):((t=null!=(t=this.player.video.currentTime)?t:0)<(null!=(e=this.settings.startAt)?e:0)&&(this.player.video.currentTime=null!=(e=this.settings.startAt)?e:0),t>=(null!=(e=this.settings.endAt)?e:1/0)&&(this.player.video.currentTime=null!=(t=this.settings.startAt)?t:0)))},this.attemptVideoInitialization=()=>xo(this,void 0,void 0,function*(){if(this.logger.trace("init"),this.times+=1,this.player.config.preview||!this.settings.autoUnmute||!this.player.video)return this.logger.info("init preview"),this.attemptMutedPlayback();this.player.video.muted=!1,this.logger.info("init video not muted"),this.logger.info("init video play",{video:this.player.video}),this.player.video.currentTime=0,this.player.video.play().then(()=>{this.logger.info("able to play video"),this.dispatchEvent(new l.Metric({type:"smartautoplay.audio_play_success",value:1})),this.dismountAutoplay()}).catch(()=>{this.logger.info("unable to play video, try muted"),this.attemptMutedPlayback()}),this.player.dispatchEvent(new s.Active)}),this.attemptMutedPlayback=()=>xo(this,void 0,void 0,function*(){var e;return this.isPlayedOrInResumeOrDestroyed?this.logger.warn("attemptMutedPlayback: skipping, autoplay will be destroyed"):this.player.video?(this.player.video.setAttribute("loop","loop"),this.player.video.setAttribute("autoplay","autoplay"),this.player.video.setAttribute("muted","muted"),this.player.video.setAttribute("playsinline","playsinline"),this.player.video.muted=!0,this.logger.info("set current time",{currentTime:this.settings.startAt}),this.player.video.currentTime=null!=(e=this.settings.startAt)?e:0,Promise.resolve(this.player.video.play()).then(()=>this.dispatchVideoReadyEvent()).catch(this.retryPlaybackOrStartSimulator)):this.logger.error("muted: video not found")}),this.backupVideoAttributes=()=>{this.player.video&&(this.previousAttributes=new Map(dr.map(e=>[e,this.player.video.getAttribute(e)])))},this.checkIfSimulatorMP4Exists=()=>xo(this,void 0,void 0,function*(){try{return 200===(yield fetch(this.simulatorMP4,{method:"HEAD"})).status}catch(e){return this.logger.error("Failed to fetch simulator MP4",{error:e,simulatorMP4:this.simulatorMP4,method:"HEAD"}),!1}}),this.dismountAutoplay=()=>{this.logger.debug("removing smart autoplay"),this.restorePreviousAttributes(),this.dispatchAutoplayClickedEvent(),this.dispatchInactiveAutoplayEvent()},this.initializeAutoplay=()=>xo(this,void 0,void 0,function*(){this.player.video&&!this.isPlayedOrInResumeOrDestroyed&&(this.player.video.addEventListener("timeupdate",this.onVideoTimeUpdate),this.backupVideoAttributes(),this.attemptVideoInitialization())}),this.startAutoPlaySimulator=()=>{this.logger.trace("startAutoPlaySimulator"),this.dispatchEvent(new l.Event({type:"custom-smartautoplay-simulator",body:{}})),this.dispatchEvent(new l.Metric({type:"smartautoplay.simulator_activated",value:1})),this.smartautoplaySimulator.then(e=>xo(this,void 0,void 0,function*(){(yield this.checkIfSimulatorMP4Exists())?(e.src=this.simulatorMP4,e.style.display="block",e.addEventListener("load",()=>this.dispatchVideoReadyEvent())):(this.dispatchEvent(new l.Event({type:"custom-smartautoplay-simulator-not-found",body:{}})),e.style.display="none",this.dispatchVideoReadyEvent())}))},this.restorePreviousAttributes=()=>{this.player.video&&0!==this.previousAttributes.size&&(this.logger.debug("restoring previous attributes",{attributes:this.previousAttributes}),dr.forEach(e=>{var t,i=this.previousAttributes.get(e);i?null!=(t=this.player.video)&&t.setAttribute(e,i):(this.player.video.removeAttribute(e),e in this.player.video&&(this.player.video[e]=!1))}))},this.retryPlaybackOrStartSimulator=()=>{var e;if(this.isPlayedOrInResumeOrDestroyed)return this.logger.warn("retryPlaybackOrStartSimulator: skipping, autoplay will be destroyed");this.logger.group("info","restore muted").message("times",this.times).end();let t=(null!=(e=this.settings.startAt)?e:0)+.01;this.times<=5?setTimeout(()=>{var e;this.logger.group("info","we can't plays inline try again").message("details",{times:this.times}).end(),(null!=(e=null==(e=this.player.video)?void 0:e.currentTime)?e:0)<=t&&this.attemptVideoInitialization()},50):this.startAutoPlaySimulator()},this.dispatchAutoplayClickedEvent=()=>xo(this,void 0,void 0,function*(){var e;this.player.video&&(yield hr(2e3).catch(()=>this.logger.warn("ensureAudioContextResumed: timeout")),null!=(e=this.player.video)&&e.dispatchEvent(new Event("play")),this.player.dispatchEvent(new s.Play),(e=this.player.controls).volume(100),e.seek(0),this.player.autoplay(!1),this.player.video.muted=!1,e.awaitPlay())}),this.dispatchInactiveAutoplayEvent=()=>{var e;this.logger.trace("inactivate smartautoplay"),this.player.dispatchEvent(new s.Inactive({customPreview:this.settings.customPreview})),null!=(e=this.player.video)&&e.removeEventListener("timeupdate",this.onVideoTimeUpdate),this.player.controllers.blockers.unblock("smartAutoPlay"),this.destroyed=!0,this.player.config.smartAutoPlay&&(this.player.config.smartAutoPlay.active=!1)}}static shouldLoad(e){return e.active&&0super.disconnectedCallback}});return xo(this,void 0,void 0,function*(){var e;t.disconnectedCallback.call(this),this.logger.debug("disconnectedCallback"),this.player.removeEventListener(D.IframeUserInteraction,this.onBackgroundProbeUserInteraction),this.player.removeEventListener(o.Blocked,this.onBlockerChanged),this.player.removeEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated),null!=(e=this.player.video)&&e.removeEventListener("timeupdate",this.onVideoTimeUpdate),this.restorePreviousAttributes()})}render(){var e,t;if(!this.isPlayedOrInResumeOrDestroyed)return this.hasSlot?this.renderSlotSmartAutoPlay():(e=this.settings,{className:e,style:t}=Yi(e.animation),p` ${this.renderAutoplayFallback()}
${t}
`)}renderSlotSmartAutoPlay(){var e=this.slotSmartAutoPlay;return e&&(e.style.display="block"),p` ${this.renderAutoplayFallback()}
`}renderAutoplayFallback(){var e="position: absolute; top: 0; left: 0; width: 100%;height: 100%; object-fit: cover; display: none; z-index: 9999;",t="smartautoplay-simulator";return nr()||/iPad|iPhone|iPod/.test(window.navigator.userAgent)?p`${"Smart`:p` `}dispatchVideoReadyEvent(){this.player.dispatchEvent(new s.VideoReady)}firstUpdated(){var e=this.player.controllers.blockers.anyBlocker("resume"),t=this.player.controllers.blockers.noneBlocker("played");e&&t&&(this.logger.group("trace","firstUpdated: destroy smartautoplay").message("blockers",{isNotPlayedYet:t,isInResume:e}).end(),this.dispatchInactiveAutoplayEvent())}willUpdate(e){this.logger.group("trace","willUpdate").message("checks",{destroyed:this.destroyed,isPlayedOrInResumeOrDestroyed:this.isPlayedOrInResumeOrDestroyed}).end(),!this.isPlayedOrInResume&&this.player.config.smartAutoPlay.active&&(this.destroyed=!1,this.player.controllers.blockers.block("smartAutoPlay")),e.has("destroyed")&&this.destroyed&&(this.logger.debug("willUpdate: destroyed"),this.player.removeEventListener(o.Blocked,this.onBlockerChanged))}},cr=(w.componentName="SmartAutoPlay",w.styles=za,Va([Ga()],w.prototype,"destroyed",void 0),Va([Ga()],w.prototype,"hasSlot",void 0),Va([ja({type:Object})],w.prototype,"config",void 0),Va([ja({type:Object})],w.prototype,"settings",void 0),Va([Ga()],w.prototype,"show",void 0),Va([Xn(".smartautoplay")],w.prototype,"smartautoplay",void 0),Va([Xn(".smartautoplay-simulator")],w.prototype,"smartautoplaySimulator",void 0),w=Va([Ka("vturb-smartautoplay")],w),Wa=e`.thumbsniper{display:none;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:var(--thumbsniper-index,100)}.in-pause .thumbsniper{display:block}.thumbsniper__thumb{background-color:var(--thumbsniper-background-color);height:100%;left:0;position:absolute;top:0;width:100%}.thumbsniper__thumb img{height:100%;object-fit:var(--thumbsniper-image-fit);width:100%}.thumbsniper vturb-anchor-button{position:absolute}.thumbsniper vturb-anchor-button.thumbsniper__button_position--tl{left:var(--thumbsniper-button-margin);top:var(--thumbsniper-button-margin)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--tc{left:50%;top:var(--thumbsniper-button-margin);transform:translateX(-50%)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--tr{right:var(--thumbsniper-button-margin);top:var(--thumbsniper-button-margin)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--cl{left:var(--thumbsniper-button-margin);top:50%;transform:translateY(-50%)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--cc{left:50%;top:50%;transform:translate(-50%,-50%)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--cr{right:var(--thumbsniper-button-margin);top:50%;transform:translateY(-50%)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--bl{bottom:var(--thumbsniper-button-margin);left:var(--thumbsniper-button-margin)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--bc{bottom:var(--thumbsniper-button-margin);left:50%;transform:translateX(-50%)}.thumbsniper vturb-anchor-button.thumbsniper__button_position--br{bottom:var(--thumbsniper-button-margin);right:var(--thumbsniper-button-margin)}`,za=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e;null!=(e=this.currentThumb)&&e.image&&this.player.dispatchEvent(new ce.ChangeArtwork({artwork:this.currentThumb.image}))},this.onEnded=()=>{this.player.config.video.picFinish&&(this.currentThumb={finish:1/0,id:"pic-finish",image:this.player.config.video.picFinish,start:0},this.player.dispatchEvent(new ce.ChangeArtwork({artwork:this.currentThumb.image})),this.requestUpdate())},this.onPlayerConfigUpdated=()=>{var e;this.onTimeUpdate(new a.TimeupdateMs({time:(null==(e=this.player.video)?void 0:e.currentTime)||0}))},this.onTimeUpdate=e=>{e=this.getThumb(e.detail.time);e!==this.currentThumb&&(this.logger.group("debug","change thumb: "+(null==e?void 0:e.id)).message("thumb",e).end(),this.currentThumb=e)},this.togglePlay=e=>{e.stopPropagation(),this.player.controls.toggle()}}connectedCallback(){super.connectedCallback(),this.player.addEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.addEventListener(a.Ended,this.onEnded),this.player.addEventListener(a.Pause,this.onUpdateMediaSessionArtwork),this.player.addEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated)}disconnectedCallback(){super.disconnectedCallback(),this.player.removeEventListener(a.TimeupdateMs,this.onTimeUpdate),this.player.removeEventListener(a.Ended,this.onEnded),this.player.removeEventListener(a.Pause,this.onUpdateMediaSessionArtwork),this.player.removeEventListener(o.ConfigUpdated,this.onPlayerConfigUpdated)}getThumb(e){if(this.player.config.thumbsniper.active)for(var t of this.player.config.thumbsniper.items)if(t.start<=e&&t.finish>=e)return t;return null}render(){return!this.currentThumb||this.player.controllers.blockers.noneBlocker("played")?null:p`
${this.renderThumb()} ${this.renderButton()}
`}renderButton(){var e,t;return null!=(e=this.currentThumb)&&e.button?(e=this.currentThumb.button,t=g({"--anchor-button-background-color":e.backgroundColor,"--anchor-button-background-color-hover":e.backgroundHoverColor,"--anchor-button-color":e.textColor,"--anchor-button-color-hover":e.textColor}),p` this.player.urlUpdater(e,t)} .onOpenUrl=${e=>this.dispatchEvent(new l.ExitedClick)} .logger=${this.logger} class="thumbsniper__button_position--${e.position}" content=${e.name} href=${e.url} id=${e.id} size=${e.size} style=${t} > `):null}renderThumb(){return this.currentThumb?p`
thumbnail
`:null}});cr.styles=[Wa],za([Ga()],cr.prototype,"currentThumb",void 0),cr=za([Ka("vturb-thumbsniper")],cr);class Yg extends mn{constructor(){super(...arguments),this.onSpeedChange=()=>{var e;this.config.turbo.active&&(e="single"===this.config.turbo.type?this.useSingle(this.config.turbo):this.useAutoTest(this.config.turbo),this.player.dispatchEvent(new ee.SpeedChanged({speed:e})),this.player.dispatchEvent(new ee.Active))}}disconnectedCallback(){this.player.dispatchEvent(new ee.Inactive),this.player.removeEventListener(o.ConfigUpdated,this.onSpeedChange),this.player.removeEventListener(s.Inactive,this.onSpeedChange)}init(){this.logger.debug("init"),this.logger.debug("host connected"),this.player.addEventListener(o.Ready,this.onSpeedChange,{once:!0}),this.player.addEventListener(o.ConfigUpdated,this.onSpeedChange),this.player.addEventListener(s.Inactive,this.onSpeedChange)}useAutoTest(e){this.logger.info("use auto test",{turbos:e});var t,i=(null!=(i=e.items)?i:[]).filter(e=>e.active);return 0e&&!!t];let ur="smartplayer/message-text-v4",S={BackgroundProbeTriggerUpdated:"backgroundProbeTriggerUpdated",BackgroundProbeUserInteraction:"backgroundProbeUserInteraction",CallactionConnected:"callactionConnected",CallactionCurrentActiveItems:"callactionCurrentActiveItems",Connect:"connect",DisableConversionTraking:"disableConversionTraking",Disconnect:"disconnect",EnableConversionTraking:"enableConversionTraking",ExitPlayerClick:"exitPlayerClick",Fullscreen:"fullscreen",FullscreenEnter:"fullscreenEnter",FullscreenExit:"fullscreenExit",HeadlineChosen:"headlineChosen",Mute:"mute",PitchTime:"pitchTime",ResumeActive:"resumeActive",ResumeInactive:"resumeInactive",SmartautoplayActive:"smartautoplayActive",SmartautoplayInactive:"smartautoplayInactive",SmartautoplayVideoReady:"smartautoplayVideoReady",Unmute:"unmute",UpdateUrlParams:"updateUrlParams",VideoEnded:"videoEnded",VideoLoadedmetadata:"videoLoadedmetadata",VideoPause:"videoPause",VideoPlay:"videoPlay",VideoSeek:"videoSeek",VideoSpeed:"videoSpeed",VideoTimeUpdate:"videoTimeUpdate",VolumeChange:"volumeChange"},pr=e=>{e=e.video;return e.aspectRatio?100*e.aspectRatio:e.height/e.width*100};var Do=function(e,n,o,l){return new(o=o||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())})};class qg extends Mf{constructor(){super(...arguments),this.onBackgroundProbeTriggerUpdated=e=>{this.postMessage(S.BackgroundProbeTriggerUpdated,e.detail)},this.onCallactionConnected=e=>{this.postMessage(S.CallactionConnected,e.detail)},this.onCallactionCurrentActiveItems=e=>{this.postMessage(S.CallactionCurrentActiveItems,e.detail)},this.onConversionTrackingDisabled=()=>this.postMessage(S.DisableConversionTraking,{}),this.onConversionTrackingEnabled=()=>this.postMessage(S.EnableConversionTraking,{}),this.onConversionTrackingUrlUpdated=()=>Do(this,void 0,void 0,function*(){var e=yield this.host.interface.urlUpdater("http://localhost/"),e=new URLSearchParams(e.split("?")[1]);this.postMessage(S.UpdateUrlParams,Object.fromEntries(e.entries()))}),this.onFullscreenEntered=e=>{this.postMessage(S.FullscreenEnter,{type:e.detail.type})},this.onFullscreenExited=e=>{this.postMessage(S.FullscreenExit,{type:e.detail.type})},this.onHeadlineChosen=e=>{this.postMessage(S.HeadlineChosen,e.detail)},this.onMessage=({data:e})=>{if(e.mime===ur)switch(this.logger.debug("Message received",e),e.type){case S.ExitPlayerClick:this.host.dispatchEvent(new l.ExitedClick);break;case S.Fullscreen:this.host.interface.fullscreen(e.payload.mode);break;case S.Mute:this.host.interface.mute();break;case S.Unmute:this.host.interface.unmute();break;case S.VideoPause:this.host.interface.pause();break;case S.VideoPlay:this.host.interface.play();break;case S.VideoSeek:this.host.interface.seek(e.payload.time);break;case S.VideoSpeed:this.host.interface.speed(e.payload.speed);break;case S.VolumeChange:this.host.interface.setVolume(e.payload.volume);break;case S.BackgroundProbeUserInteraction:this.host.dispatchEvent(new D.IframeUserInteraction);break;default:this.logger.warn("Unknown message",e)}},this.onPause=()=>this.postMessage(S.VideoPause,{}),this.onPitchTimeReached=()=>this.postMessage(S.PitchTime,{}),this.onPlay=()=>this.postMessage(S.VideoPlay,{}),this.onResumeActive=()=>this.postMessage(S.ResumeActive,{}),this.onResumeInactive=()=>this.postMessage(S.ResumeInactive,{}),this.onSmartAutoplayActive=()=>this.postMessage(S.SmartautoplayActive,{}),this.onSmartAutoplayInactive=()=>this.postMessage(S.SmartautoplayInactive,{}),this.onSmartAutoplayVideoReady=()=>this.postMessage(S.SmartautoplayVideoReady,{}),this.onSpeedChange=e=>{this.postMessage(S.VideoSpeed,{speed:e.detail.video.playbackRate||1})},this.onVideoEnded=()=>this.postMessage(S.VideoEnded,{}),this.onVideoLoadedmetadata=e=>{this.postMessage(S.VideoLoadedmetadata,{duration:e.detail.video.duration})},this.onVideoTimeupdateMs=e=>{this.postMessage(S.VideoTimeUpdate,{time:e.detail.time})},this.onVolumeChange=e=>{this.postMessage(S.VolumeChange,{volume:e.detail.volume})}}hostConnected(){this.shouldConnect()&&(this.postMessage(S.Connect,{aspect:pr(this.host.config),id:this.host.config.id,isVideoVertical:this.host.config.video.width{document.cookie.split(";").forEach(e=>{document.cookie=e.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date(0).toUTCString()};path=/`)})},getItem:e=>{e=Oo(e),e=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));return e?e[2]:null},key:()=>null,length:0,removeItem:e=>{e=Oo(e);document.cookie=e+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"},setItem:(e,t)=>{e=Oo(e);document.cookie=e+`=${t};path=/`}},gr={get(e,t){var e=fr.getItem(e);return!e||null===(e=(e=>{try{return JSON.parse(e)}catch(e){return null}})(e))?t:e},set(e,t){fr.setItem(e,JSON.stringify(t))},removeByPattern(t){for(let e=fr.length-1;0<=e;e--){var i=fr.key(e);i&&t.test(i)&&fr.removeItem(i)}}},G=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},mr=Number.isSafeInteger||function(e){return"number"==typeof e&&Math.abs(e)<=vr},vr=Number.MAX_SAFE_INTEGER||9007199254740991,Y=(e=>(e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e))({}),q=(e=>(e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",e.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",e.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.ASSET_LIST_LOAD_ERROR="assetListLoadError",e.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",e.ASSET_LIST_PARSING_ERROR="assetListParsingError",e.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.ATTACH_MEDIA_ERROR="attachMediaError",e.UNKNOWN="unknown",e))({}),X=(e=>(e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.MEDIA_ENDED="hlsMediaEnded",e.STALL_RESOLVED="hlsStallResolved",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFERED_TO_END="hlsBufferedToEnd",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e.ASSET_LIST_LOADING="hlsAssetListLoading",e.ASSET_LIST_LOADED="hlsAssetListLoaded",e.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",e.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",e.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",e.INTERSTITIAL_STARTED="hlsInterstitialStarted",e.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",e.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",e.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",e.INTERSTITIAL_ENDED="hlsInterstitialEnded",e.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",e.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",e.EVENT_CUE_ENTER="hlsEventCueEnter",e))({});var Mo="manifest",Fo="level",No="audioTrack",Uo="subtitleTrack",qa="main",Xa="audio",$o="subtitle";class Xg{constructor(e,t=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}sample(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}}class Qg{constructor(e,t,i,r=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new Xg(e),this.fast_=new Xg(t),this.defaultTTFB_=r,this.ttfb_=new Xg(e)}update(e,t){var{slow_:i,fast_:r,ttfb_:s}=this;i.halfLife!==e&&(this.slow_=new Xg(e,i.getEstimate(),i.getTotalWeight())),r.halfLife!==t&&(this.fast_=new Xg(t,r.getEstimate(),r.getTotalWeight())),s.halfLife!==e&&(this.ttfb_=new Xg(e,s.getEstimate(),s.getTotalWeight()))}sample(e,t){e=(e=Math.max(e,this.minDelayMs_))/1e3,t=8*t/e;this.fast_.sample(e,t),this.slow_.sample(e,t)}sampleTTFB(e){var t=e/1e3,t=Math.sqrt(2)*Math.exp(-Math.pow(t,2)/2);this.ttfb_.sample(t,Math.max(e,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function Bo(e,t,i){(t=(e=>"symbol"==typeof(e=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);if("object"!=typeof(i=i.call(e,t)))return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"))?e:e+"")(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}function Qa(){return(Qa=Object.assign?Object.assign.bind():function(e){for(var t=1;t`):yr)}let Er=jo(),H=Er;function Ho(e=!0){if("undefined"!=typeof self)return(e||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function zo(e,t){e=Object.keys(e);let i=Object.keys(t);var t=e.length,r=i.length;return!t||!r||t===r&&!e.some(e=>-1===i.indexOf(e))}function Ko(e,t=!1){var i,r;if("undefined"!=typeof TextDecoder)return i=new TextDecoder("utf-8").decode(e),t?-1!==(r=i.indexOf("\0"))?i.substring(0,r):i:i.replace(/\0/g,"");var s,a,n=e.length;let o,l="",h=0;for(;h>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(s);break;case 12:case 13:o=e[h++],l+=String.fromCharCode((31&s)<<6|63&o);break;case 14:o=e[h++],a=e[h++],l+=String.fromCharCode((15&s)<<12|(63&o)<<6|(63&a)<<0)}}return l}function Ja(i){let r="";for(let t=0;t{let t=e.subarray(8),i=t.subarray(86),r=tn(t.subarray(4,8)),s=r,a,n="enca"===r||"encv"===r;n&&(e=sn(t,[r])[0],sn(e.subarray("enca"===r?28:78),["sinf"]).forEach(e=>{var t=sn(e,["schm"])[0];!t||"cbcs"!==(t=tn(t.subarray(4,8)))&&"cenc"!==t||(t=sn(e,["frma"])[0])&&(s=tn(t))}));var o=s;switch(s){case"avc1":case"avc2":case"avc3":case"avc4":var l=sn(i,["avcC"])[0];l&&3>3;31===t&&(t+=1+((7&d)<<3)+((224&h[e])>>5)),s+="."+t}break;case"hvc1":case"hev1":h=sn(i,["hvcC"])[0];if(h&&12>6],f=31&u,g=rn(h,2),u=(32&u)>>5?"H":"L",m=h[12],v=h.subarray(6,12);s=(s=(s+="."+p+f)+("."+(t=>{let i=0;for(let e=0;e<32;e++)i|=(t>>e&1)<<31-e;return i>>>0})(g).toString(16).toUpperCase()))+("."+u+m);let t="";for(let e=v.length;e--;){var y=v[e];(y||t)&&(y=y.toString(16).toUpperCase(),t="."+y+t)}s+=t}a=ll("hev1"==o?"dvhe":"dvh1",i);break;case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":s=ll(s,i)||s;break;case"vp09":p=sn(i,["vpcC"])[0];p&&6>4&15,s+="."+cl(f)+"."+cl(g)+"."+cl(u));break;case"av01":var b,E,T,w,S,k,_,L,m=sn(i,["av1C"])[0];m&&2>>5,E=31&m[1],T=m[2]>>>7?"H":"M",S=(64&m[2])>>6,w=(32&m[2])>>5,w=2==b&&S?w?12:10:S?10:8,S=(16&m[2])>>4,k=(8&m[2])>>3,_=(4&m[2])>>2,L=3&m[2],0,s+="."+b+"."+cl(E)+T+"."+cl(w)+"."+S+"."+k+_+L+".01.01.01.0",a=ll("dav1",i))}return{codec:s,encrypted:n,supplemental:a}})(sn(n,["mdia","minf","stbl","stsd"])[0]),a?(i[o]={timescale:r,type:a,stsd:n},i[a]=Za({timescale:r,id:o},n)):i[o]={timescale:r,type:s,stsd:n})}return sn(e,["moov","mvex","trex"]).forEach(e=>{var t=rn(e,4),t=i[t];t&&(t.default={duration:rn(e,12),flags:rn(e,20)})}),i}function ll(e,t){var i=sn(t,["dvvC"]),i=(i.length?i:sn(t,["dvcC"]))[0];if(i)return t=i[2]>>1&127,i=i[2]<<5&32|i[3]>>3&31,e+"."+cl(t)+"."+cl(i)}function hl(e,t){for(var i=t+5;128&e[t++]&&t{i=sn(i,["mdia","minf","stbl","stsd"])[0];if(i){i=i.subarray(8);let e=sn(i,["enca"]),t=0{sn(t?e.subarray(28):e.subarray(78),["sinf"]).forEach(e=>{e=pl(e);e&&r(e,t)})})}})}function pl(e){var t=sn(e,["schm"])[0];if(t){t=tn(t.subarray(4,8));if("cbcs"===t||"cenc"===t){t=sn(e,["schi","tenc"])[0];if(t)return t}}}function fl(e,t,i){let o={};var r=sn(e,["moof","traf"]);for(let e=0;eo[e].duration)){let t=1/0,i=0;var s=sn(e,["sidx"]);for(let e=0;e{var i=[],e=t[0];let r=8;var s=rn(t,r);r+=4;let a=0,n=0,o=(0===e?(a=rn(t,r),n=rn(t,r+4),r+=8):(a=al(t,r),n=al(t,r+8),r+=16),r+=2,t.length+n);var l=sl(t,r);r+=2;for(let e=0;e>>31)return H.warn("SIDX has hierarchical references (not supported)"),null;d=rn(t,h);h+=4,i.push({referenceSize:c,subsegmentDuration:d,info:{duration:d/s,start:o,end:o+c-1}}),o+=c,h+=4,r=h}return{earliestPresentationTime:a,timescale:s,version:e,referencesCount:l,references:i}})(s[e]);null!=n&&n.references&&(t=Math.min(t,n.earliestPresentationTime/n.timescale),a=n.references.reduce((e,t)=>e+t.info.duration||0,0),i=Math.max(i,a+n.earliestPresentationTime/n.timescale))}i&&G(i)&&Object.keys(o).forEach(e=>{o[e].duration||(o[e].duration=i*o[e].timescale-o[e].start)})}return o}function gl(e,t){var i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i}function ml(E,T){let w=[],S=T.samples,k=T.timescale,h=T.id,_=!1;return sn(S,["moof"]).map(e=>{let b=e.byteOffset-8;sn(e,["traf"]).map(l=>{var e=sn(l,["tfdt"]).map(e=>{var t=e[0];let i=rn(e,4);return(i=1===t?(i*=Math.pow(2,32))+rn(e,8):i)/k})[0];return void 0!==e&&(E=e),sn(l,["tfhd"]).map(e=>{var t=rn(e,4),i=16777215&rn(e,0),r=0!=(1&i),s=0!=(2&i),a=0!=(8&i);let v=0;var n=0!=(16&i);let y=0;i=0!=(32&i);let o=8;t===h&&(r&&(o+=8),s&&(o+=4),a&&(v=rn(e,o),o+=4),n&&(y=rn(e,o),o+=4),i&&(o+=4),"video"===T.type&&(_=vl(T.codec)),sn(l,["trun"]).map(t=>{var i=t[0],e=16777215&rn(t,0);let r=0;var s=0!=(256&e);let a=0;var n=0!=(512&e);let o=0;var l=0!=(1024&e),h=0!=(2048&e);let d=0;var c,u,p=rn(t,4);let f=8,g=(0!=(1&e)&&(r=rn(t,f),f+=4),0!=(4&e)&&(f+=4),r+b);for(let e=0;e>1&63)||40==c:6==(31&u))&&yl(S.subarray(g,g+m),_?2:1,E+d/k,w),g+=m,e+=m+4}}E+=a/k}}))})})}),w}function vl(e){return!!e&&("hvc1"===(e=e.substring(0,4))||"hev1"===e||"dvh1"===e||"dvhe"===e)}function yl(e,t,i,r){var s=bl(e);let a=0,n=(a+=t,0),o=0,l=0;for(;a=s.length)&&(l=s[a++],n+=l,255===l););for(o=0;!(a>=s.length)&&(l=s[a++],o+=l,255===l););var h=s.length-a;let t=a;if(oh){H.error(`Malformed SEI payload. ${o} is too small, only ${h} bytes left to parse.`);break}if(4===n){if(181===s[t++]){h=sl(s,t);if(t+=2,49===h){h=rn(s,t);if(t+=4,1195456820===h){h=s[t++];if(3===h){var d=s[t++],c=64&d,u=c?2+3*(31&d):0,p=new Uint8Array(u);if(c){p[0]=d;for(let e=1;e>24&255,d[1]=e>>16&255,d[2]=e>>8&255,d[3]=255&e,d.set(o,4),t=0,e=8;t{var t=e.getUint32(0),i=e.byteOffset,r=e.byteLength;if(r>>24)&&1!=s)return{offset:i,size:t};let a=e.buffer,n=Ja(new Uint8Array(a,i+12,16)),o=null,l=null,h=0;if(0==s)h=28;else{var d=e.getUint32(28);if(!d||r<32+16*d)return{offset:i,size:t};o=[];for(let e=0;e/\(Windows.+Firefox\//i.test(navigator.userAgent),_r={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,dav1:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function wl(e,t){t=_r[t];return!!t&&!!t[e.slice(0,4)]}function Sl(e,t,i=!0){return!e.split(",").some(e=>!kl(e,t,i))}function kl(e,t,i=!0){var i=Ho(i);return null!=(i=null==i?void 0:i.isTypeSupported(_l(e,t)))&&i}function _l(e,t){return t+"/mp4;codecs="+e}function Ll(e){return e?(e=e.substring(0,4),_r.video[e]):2}function Al(e){let r=kr();return e.split(",").reduce((e,t)=>{var i=r&&vl(t)?9:_r.video[t];return i?(2*i+e)/(e?3:2):(_r.audio[t]+e)/(e?2:1)},0)}let Lr={},Ar=/flac|opus|mp4a\.40\.34/i;function Rl(e,a=!0){return e.replace(Ar,e=>{var[t,i=!0]=[e.toLowerCase(),a];if(Lr[t])return Lr[t];var r,s={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[t];for(let e=0;e!1};return{mpeg:e.isTypeSupported("audio/mpeg"),mp3:e.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:e.isTypeSupported('audio/mp4; codecs="ac-3"')}}function xl(e){return e.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}let Rr={supported:!1,smooth:!1,powerEfficient:!1},Ir={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]};function Dl(e,t){return{supported:!1,configurations:t,decodingInfoResults:[Rr],error:e}}function Ol(e,t,i,r={}){var s=e.videoCodec;if(!s&&!e.audioCodec||!i)return Promise.resolve(Ir);let a=[];var n=(e=>{let t,i=null==(t=e.videoCodec)?void 0:t.split(","),r=Ml(e),s=e.width||640,a=e.height||480,n=e.frameRate||30,o=e.videoRange.toLowerCase();return i?i.map(e=>{e={contentType:_l((e=>{if(e.startsWith("av01.")){var t=e.split("."),i=["0","111","01","01","01","0"];for(let e=t.length;4{let t,a=null==(t=e.audioCodec)?void 0:t.split(","),n=Ml(e);return a&&e.audioGroups?e.audioGroups.reduce((e,t)=>{var i=t?null==(i=r.groups[t])?void 0:i.tracks:null;return i?i.reduce((i,e)=>{if(e.groupId===t){let t=parseFloat(e.channels||"");a.forEach(e=>{e={contentType:_l(e,"audio"),bitrate:s?((e,t)=>{if(t<=1)return 1;let i=128e3;return"ec-3"===e?i=768e3:"ac-3"===e&&(i=64e4),Math.min(t/2,i)})(e,n):n};t&&(e.channels=""+t),i.push(e)})}return i},e):e},[]):[]})(e,t,0vl(e))&&kr())return Promise.resolve(Dl(new Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${e})`),a))}return Promise.all(a.map(e=>{var t=(e=>{let t="",{audio:i,video:r}=e;return r&&(e=xl(r.contentType),t+=`${e}_r${r.height}x${r.width}f${Math.ceil(r.framerate)}${r.transferFunction||"sd"}_`+Math.ceil(r.bitrate/1e5)),i&&(e=xl(i.contentType),t+=(r?"_":"")+e+"_c"+i.channels),t})(e);return r[t]||(r[t]=i.decodingInfo(e))})).then(e=>({supported:!e.some(e=>!e.supported),configurations:a,decodingInfoResults:e})).catch(e=>({supported:!1,configurations:a,decodingInfoResults:[],error:e}))}function Ml(e){return 1e3*Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)/1e3)||1}let Pr=["NONE","TYPE-0","TYPE-1",null],Cr=["SDR","PQ","HLG"];var Fl="",Nl="YES",Ul="v2";function $l(e){var{canSkipUntil:e,canSkipDateRanges:t,age:i}=e;return e&&i!!e).map(e=>e.substring(0,4)).join(","),"supplemental"in e&&(this.supplemental=e.supplemental,t=null==(t=e.supplemental)?void 0:t.videoCodec)&&t!==e.videoCodec&&(this.codecSet+=","+t.substring(0,4)),this.addGroupId("audio",e.attrs.AUDIO),this.addGroupId("text",e.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(e){return Bl(this._audioGroups,e)}hasSubtitleGroup(e){return Bl(this._subtitleGroups,e)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(e,t){if(t)if("audio"===e){let e=this._audioGroups;-1===(e=e||(this._audioGroups=[])).indexOf(t)&&e.push(t)}else if("text"===e){let e=this._subtitleGroups;-1===(e=e||(this._subtitleGroups=[])).indexOf(t)&&e.push(t)}}get urlId(){return 0}set urlId(e){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var e;return null==(e=this.audioGroups)?void 0:e[0]}get textGroupId(){var e;return null==(e=this.subtitleGroups)?void 0:e[0]}addFallback(){}}function Bl(e,t){return!(!t||!e)&&-1!==e.indexOf(t)}function Vl(e,t){let i=!1,r=[];return e&&(i="SDR"!==e,r=[e]),!t||(e="SDR"!==(r=t.allowedVideoRanges||Cr.slice(0)).join("")&&!t.videoCodec,i=void 0!==t.preferHDR?t.preferHDR:e&&(()=>{if("function"==typeof matchMedia){var e=matchMedia("(dynamic-range: high)"),t=matchMedia("bad query");if(e.media!==t.media)return!0===e.matches}return!1})())||(r=["SDR"]),{preferHDR:i,allowedVideoRanges:r}}let xr=i=>{let r=new WeakSet;return(e,t)=>{if("object"==typeof(t=i?i(e,t):t)&&null!==t){if(r.has(t))return;r.add(t)}return t}},B=(e,t)=>JSON.stringify(e,xr(t));function jl(e,t){H.log(`[abr] start candidates with "${e}" ignored because `+t)}function Gl(e){return e.reduce((e,t)=>{let i=e.groups[t.groupId];(i=i||(e.groups[t.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1})).tracks.push(t);var r=t.channels||"2";return i.channels[r]=(i.channels[r]||0)+1,i.hasDefault=i.hasDefault||t.default,i.hasAutoSelect=i.hasAutoSelect||t.autoselect,i.hasDefault&&(e.hasDefaultAudio=!0),i.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function Hl(e){var t,i,r,s,a;return e&&({lang:t,assocLang:i,characteristics:r,channels:s,audioCodec:a}=e,{lang:t,assocLang:i,characteristics:r,channels:s,audioCodec:a})}function zl(t,i,r){if("attrs"in t){var e=i.indexOf(t);if(-1!==e)return e}for(let e=0;e{let i=e.split(","),r=t.split(",");return i.length===r.length&&!i.some(e=>-1===r.indexOf(e))})(e.characteristics||"",t.characteristics))&&(void 0===i||i(e,t))}function Wl(e,t){var{audioCodec:e,channels:i}=e;return!(void 0!==e&&(t.audioCodec||"").substring(0,4)!==e.substring(0,4)||void 0!==i&&i!==(t.channels||"2"))}function Yl(t,i,r){for(let e=i;-1{let s,{fragCurrent:a,partCurrent:n,hls:o}=this;var{autoLevelEnabled:l,media:h}=o;if(a&&h){var d=performance.now(),c=(n||a).stats,u=(n||a).duration,d=d-c.loading.start;let r=o.minAutoLevel;var p=a.level,f=this._nextAutoLevel;if(c.aborted||c.loaded&&c.loaded===c.total||p<=r)this.clearTimer(),this._nextAutoLevel=-1;else if(l){l=-1r;i--){var k=y[i].maxBitrate,_=!y[i].details||S;if((e=this.getTimeToLoadFrag(T,w,u*k,_))=b||e>10*u||(h?this.bwEstimator.sample(d-Math.min(f,g),c.loaded):this.bwEstimator.sampleTTFB(d),t=y[i].maxBitrate,this.getBwEstimate()*E>t&&this.resetEstimator(t),-1<(h=this.findBestLevel(t,r,i,0,m,1,1))&&(i=h),this.warn(`Fragment ${a.sn}${n?" part "+n.index:""} of level ${p} is loading too slowly; Fragment duration: ${a.duration.toFixed(3)} Time to underbuffer: ${m.toFixed(3)} s Estimated load time for current fragment: ${b.toFixed(3)} s Estimated load time for down switch fragment: ${e.toFixed(3)} s TTFB estimate: ${0|g} ms Current BW estimate: ${G(v)?0|v:"Unknown"} bps New BW estimate: ${0|this.getBwEstimate()} bps Switching to level ${i} @ ${0|t} bps`),o.nextLoadLevel=o.nextAutoLevel=i,this.clearTimer(),f=()=>{if(this.clearTimer(),this.fragCurrent===a&&this.hls.loadLevel===i&&0r){let e=this.findBestLevel(this.hls.levels[r].bitrate,r,i,0,t,1,1);-1===e&&(e=r),this.hls.nextLoadLevel=this.hls.nextAutoLevel=e,this.resetEstimator(this.hls.levels[e].bitrate)}}},l||b>2*e?f():this.timer=self.setInterval(f,1e3*e),o.trigger(X.FRAG_LOAD_EMERGENCY_ABORTED,{frag:a,part:n,stats:c}))}}}}}}},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(this.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){var e=this.hls.config;return new Qg(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){var e=this.hls;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_LOADED,this.onFragLoaded,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this),e.on(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){var e=this.hls;e&&(e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_LOADED,this.onFragLoaded,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this),e.off(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(X.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,t){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){-1Math.max(e,t)&&i[e].loadError<=i[t].loadError)return e}return this._nextAutoLevel=t,this.nextAutoLevelKey=this.getAutoLevelKey(),t}getAutoLevelKey(){return this.getBwEstimate()+"_"+this.getStarvationDelay().toFixed(2)}getNextABRAutoLevel(){var{fragCurrent:e,partCurrent:t,hls:i}=this;if(i.levels.length<=1)return i.loadLevel;var{maxAutoLevel:r,config:s,minAutoLevel:a}=i,t=t?t.duration:e?e.duration:0,e=this.getBwEstimate(),n=this.getStarvationDelay();let o=s.abrBandWidthFactor,l=s.abrBandWidthUpFactor;if(n){var h=this.findBestLevel(e,a,r,n,0,o,l);if(0<=h)return this.rebufferNotice=-1,h}let d=t?Math.min(t,s.maxStarvationDelay):s.maxStarvationDelay;n||(h=this.bitrateTestDelay)&&(t=t?Math.min(t,s.maxLoadingDelay):s.maxLoadingDelay,d=t-h,this.info(`bitrate test took ${Math.round(1e3*h)}ms, set first fragment max fetchDuration to ${Math.round(1e3*d)} ms`),o=l=1);s=this.findBestLevel(e,a,r,n,d,o,l);return this.rebufferNotice!==s&&(this.rebufferNotice=s,this.info(`${n?"rebuffering expected":"buffer is empty"}, optimal quality level `+s)),-1{var a=Object.keys(r);let n=null==t?void 0:t.channels,o=null==t?void 0:t.audioCodec,l=null==i?void 0:i.videoCodec,h=n&&2===parseInt(n),d=!1,c=!1,u=1/0,p=1/0,f=1/0,g=1/0,m=0,v=[],{preferHDR:y,allowedVideoRanges:b}=Vl(e,i);for(let e=a.length;e--;){let t=r[a[e]];d=d||00{let i=r[t];if(t===e)return e;if(v=c?b.filter(e=>0s)return jl(t,`min bitrate of ${i.minBitrate} > current estimate of `+s),e;if(!i.hasDefaultAudio)return jl(t,"no renditions with default or auto-select sound found"),e;if(o&&t.indexOf(o.substring(0,4))%5!=0)return jl(t,`audio codec preference "${o}" not found`),e;if(n&&!h){if(!i.channels[n])return jl(t,`no renditions with ${n} channel sound found (channels options: ${Object.keys(i.channels)})`),e}else if((!o||h)&&d&&0===i.channels[2])return jl(t,"no renditions with stereo sound found"),e;if(i.minHeight>E)return jl(t,`min resolution of ${i.minHeight} > maximum of `+E),e;if(i.minFramerate>T)return jl(t,`min framerate of ${i.minFramerate} > maximum of `+T),e;if(!v.some(e=>0=Al(e)||i.fragmentError>r[e].fragmentError)?e:(g=i.minIndex,m=i.maxScore,t)},void 0),videoRanges:v,preferHDR:y,minFramerate:p,minBitrate:f,minIndex:g}})(this.codecTiers||(this.codecTiers=(w=_,p.slice(e,s+1).reduce((e,t,r)=>{if(t.codecSet){var s=t.audioGroups;let i=e[t.codecSet];i||(e[t.codecSet]=i={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:r,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!s,fragmentError:0}),i.minBitrate=Math.min(i.minBitrate,t.bitrate);var a=Math.min(t.height,t.width);i.minHeight=Math.min(i.minHeight,a),i.minFramerate=Math.min(i.minFramerate,t.frameRate),i.minIndex=Math.min(i.minIndex,r),i.maxScore=Math.max(i.maxScore,t.score),i.fragmentError+=t.fragmentError,i.videoRanges[t.videoRange]=(i.videoRanges[t.videoRange]||0)+1,s&&s.forEach(e=>{if(e){let t=w.groups[e];t&&(i.hasDefaultAudio=i.hasDefaultAudio||w.hasDefaultAudio?t.hasDefault:t.hasAutoSelect||!w.hasDefaultAudio&&!w.hasAutoSelectAudio,Object.keys(t.channels).forEach(e=>{i.channels[e]=(i.channels[e]||0)+t.channels[e]}))}})}return e},{}))),E,i,S,k),{codecSet:k,videoRanges:A,minFramerate:F,minBitrate:N,minIndex:U,preferHDR:$}=r;L=U,b=k,E=$?A[A.length-1]:A[0],T=F,i=Math.max(i,N),this.log("picked start tier "+B(r))}else b=null==m?void 0:m.codecSet,E=null==m?void 0:m.videoRange;var R=u?u.duration:t?t.duration:0,I=this.bwEstimator.getEstimateTTFB()/1e3,P=[];for(let t=s;t>=e;t--){let r=p[t];var C,x=t>c;if(r)if(!g.useMediaCapabilities||r.supportedResult||r.supportedPromise||("function"==typeof(null==(C=navigator.mediaCapabilities)?void 0:C.decodingInfo)&&((e,r,t,i,s,a)=>{var n=e.videoCodec,o=e.audioCodec?e.audioGroups:null,l=null==a?void 0:a.audioCodec;let h=(a=null==a?void 0:a.channels)?parseInt(a):l?1/0:2,d=null;if(null!=o&&o.length)try{d=1===o.length&&o[0]?r.groups[o[0]].channels:o.reduce((i,e)=>{if(e){let t=r.groups[e];if(!t)throw new Error(`Audio track group ${e} not found`);Object.keys(t.channels).forEach(e=>{i[e]=(i[e]||0)+t.channels[e]})}return i},{2:0})}catch(e){return 1}return void 0!==n&&(n.split(",").some(e=>vl(e))||1920Math.max(i,30)||"SDR"!==e.videoRange&&e.videoRange!==t||e.bitrate>Math.max(s,8e6))||d&&G(h)&&Object.keys(d).some(e=>parseInt(e)>h)})(r,_,E,T,i,S)?(r.supportedPromise=Ol(r,_,C,this.supportedCache),r.supportedPromise.then(e=>{var t,i;this.hls&&(r.supportedResult=e,i=(t=this.hls.levels).indexOf(r),e.error?this.warn(`MediaCapabilities decodingInfo error: "${e.error}" for level ${i} `+B(e)):e.supported?e.decodingInfoResults.some(e=>!1===e.smooth||!1===e.powerEfficient)&&this.log(`MediaCapabilities decodingInfo for level ${i} not smooth or powerEfficient: `+B(e)):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${i} `+B(e)),-1{this.warn("Error handling MediaCapabilities decodingInfo: "+e)})):r.supportedResult=Ir),!(b&&r.codecSet!==b||E&&r.videoRange!==E||x&&T>r.frameRate||!x&&0!1===e.smooth))||y&&t===L){var D=r.details,O=(u?null==D?void 0:D.partTarget:null==D?void 0:D.averagetargetduration)||R;let e;e=x?l*i:o*i;var M,x=R&&2*R<=a&&0===n?r.averageBitrate:r.maxBitrate,D=this.getTimeToLoadFrag(I,e,x*O,void 0===D);if(e>=x&&(t===d||0===r.loadError&&0===r.fragmentError)&&(D<=I||!G(D)||v&&!this.bitrateTestDelay||D${t} adjustedbw(${Math.round(e)})-bitrate=${Math.round(e-x)} ttfb:${I.toFixed(1)} avgDuration:${O.toFixed(1)} maxFetchDuration:${h.toFixed(1)} fetchDuration:${D.toFixed(1)} firstSelection:${y} codecSet:${r.codecSet} videoRange:${r.videoRange} hls.loadLevel:`+f)),y&&(this.firstSelection=t),t}else P.push(t)}return-1}set nextAutoLevel(e){e=this.deriveNextAutoLevel(e);this._nextAutoLevel!==e&&(this.nextAutoLevelKey="",this._nextAutoLevel=e)}deriveNextAutoLevel(e){var{maxAutoLevel:t,minAutoLevel:i}=this.hls;return Math.min(Math.max(e,i),t)}}let Dr={search:function(e,t){let i=0,r=e.length-1;for(;i<=r;){var s,a,n=t(a=e[s=(i+r)/2|0]);if(0(t=1e3*Math.min(t,i.duration+(i.deltaPTS||0)),i=i.endProgramDateTime||0,e{if(t&&0===t.start&&t.level("INF"===t[0]&&(e+=parseFloat(t[1])),e),i),e.start<=t})(a,e,Math.min(s,r)))||!(n=Dr.search(t,Zl.bind(null,i,r)))||n===e&&a?a:n}function Zl(e=0,t=0,i){return i.start<=e&&i.start+i.duration>e?0:(t=Math.min(t,i.duration+(i.deltaPTS||0)),i.start+i.duration-t<=e?1:i.start-t>e&&i.start?-1:0)}function Jl(i,r,s){if(i&&i.startCC<=r&&i.endCC>=r){let e=i.fragments;i=i.fragmentHint;i&&(e=e.concat(i));let t;return Dr.search(e,e=>e.cc0<=t.indexOf(e.groupId)).some(e=>null==(e=e.details)?void 0:e.hasKey(i))}return!1}onManifestLoading(){this.playlistError=0}onLevelUpdated(){this.playlistError=0}onError(e,t){if(!t.fatal){var i=this.hls,r=t.context;switch(t.details){case q.FRAG_LOAD_ERROR:case q.FRAG_LOAD_TIMEOUT:case q.KEY_LOAD_ERROR:case q.KEY_LOAD_TIMEOUT:return void(t.errorAction=this.getFragRetryOrSwitchAction(t));case q.FRAG_PARSING_ERROR:if(null!=(s=t.frag)&&s.gap)return void(t.errorAction=mh());case q.FRAG_GAP:case q.FRAG_DECRYPT_ERROR:return t.errorAction=this.getFragRetryOrSwitchAction(t),void(t.errorAction.action=hh);case q.LEVEL_EMPTY_ERROR:case q.LEVEL_PARSING_ERROR:var s=t.parent===qa?t.level:i.loadLevel;return void(t.details===q.LEVEL_EMPTY_ERROR&&null!=(a=t.context)&&null!=(a=a.levelDetails)&&a.live?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,s):(t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,s)));case q.LEVEL_LOAD_ERROR:case q.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==r?void 0:r.level)&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,r.level)));case q.AUDIO_TRACK_LOAD_ERROR:case q.AUDIO_TRACK_LOAD_TIMEOUT:case q.SUBTITLE_LOAD_ERROR:case q.SUBTITLE_TRACK_LOAD_TIMEOUT:if(r){var a=i.loadLevelObj;if(a&&(r.type===No&&a.hasAudioGroup(r.groupId)||r.type===Uo&&a.hasSubtitleGroup(r.groupId)))return t.errorAction=this.getPlaylistRetryOrSwitchAction(t,i.loadLevel),t.errorAction.action=hh,void(t.errorAction.flags=ph)}return;case q.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return void(t.errorAction={action:hh,flags:fh});case q.KEY_SYSTEM_SESSION_UPDATE_FAILED:case q.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case q.KEY_SYSTEM_NO_SESSION:return void(t.errorAction={action:hh,flags:gh});case q.BUFFER_ADD_CODEC_ERROR:case q.REMUX_ALLOC_ERROR:case q.BUFFER_APPEND_ERROR:return void(t.errorAction||(t.errorAction=this.getLevelSwitchAction(t,null!=(s=t.level)?s:i.loadLevel)));case q.INTERNAL_EXCEPTION:case q.BUFFER_APPENDING_ERROR:case q.BUFFER_FULL_ERROR:case q.LEVEL_SWITCH_ERROR:case q.BUFFER_STALLED_ERROR:case q.BUFFER_SEEK_OVER_HOLE:case q.BUFFER_NUDGE_ON_STALL:return void(t.errorAction=mh())}t.type===Y.KEY_SYSTEM_ERROR&&(t.levelRetry=!1,t.errorAction=mh())}}getPlaylistRetryOrSwitchAction(e,t){var i=rh(this.hls.config.playlistLoadPolicy,e),r=this.playlistError++;return nh(i,r,eh(e),e.response)?{action:ch,flags:uh,retryConfig:i,retryCount:r}:(e=this.getLevelSwitchAction(e,t),i&&(e.retryConfig=i,e.retryCount=r),e)}getFragRetryOrSwitchAction(e){var t=this.hls,i=this.getVariantLevelIndex(e.frag),r=t.levels[i],{fragLoadPolicy:s,keyLoadPolicy:a}=t.config,a=rh(th(e)?a:s,e),s=t.levels.reduce((e,t)=>e+t.fragmentError,0);if(r&&(e.details!==q.FRAG_GAP&&r.fragmentError++,!ih(e)&&nh(a,s,eh(e),e.response)))return{action:ch,flags:uh,retryConfig:a,retryCount:s};t=this.getLevelSwitchAction(e,i);return a&&(t.retryConfig=a,t.retryCount=s),t}getLevelSwitchAction(r,e){var t=this.hls;null==e&&(e=t.loadLevel);let s=this.hls.levels[e];if(s){var a=r.details;s.loadError++,a===q.BUFFER_APPEND_ERROR&&s.fragmentError++;let i=-1;var{levels:n,loadLevel:o,minAutoLevel:l,maxAutoLevel:h}=t,d=(t.autoLevelEnabled||t.config.preserveManualLevelOnError||(t.loadLevel=-1),null==(e=r.frag)?void 0:e.type),c=(d===Xa&&a===q.FRAG_PARSING_ERROR||"audio"===r.sourceBufferName&&(a===q.BUFFER_ADD_CODEC_ERROR||a===q.BUFFER_APPEND_ERROR))&&n.some(({audioCodec:e})=>s.audioCodec!==e),u="video"===r.sourceBufferName&&(a===q.BUFFER_ADD_CODEC_ERROR||a===q.BUFFER_APPEND_ERROR)&&n.some(({codecSet:e,audioCodec:t})=>s.codecSet!==e&&s.audioCodec===t),{type:p,groupId:f}=null!=(e=r.context)?e:{};for(let e=n.length;e--;){var g,m=(e+o)%n.length;if(m!==o&&l<=m&&m<=h&&0===n[m].loadError){let t=n[m];if(a===q.FRAG_GAP&&d===qa&&r.frag){var v=n[m].details;if(v){var v=Ql(r.frag,v.fragments,r.frag.start);if(null!=v&&v.gap)continue}}else{if(p===No&&t.hasAudioGroup(f)||p===Uo&&t.hasSubtitleGroup(f))continue;if(d===Xa&&null!=(v=s.audioGroups)&&v.some(e=>t.hasAudioGroup(e))||d===$o&&null!=(g=s.subtitleGroups)&&g.some(e=>t.hasSubtitleGroup(e))||c&&s.audioCodec===t.audioCodec||u&&s.codecSet===t.codecSet||!c&&s.codecSet!==t.codecSet)continue}i=m;break}}if(-1{let t=this.fragments[e];!t||n>=t.body.sn||(t.buffered||t.loaded&&!a?(e=t.range[i])&&(0===e.time.length?this.removeFragment(t.body):e.time.some(e=>{e=!this.isTimeBuffered(e.startPTS,e.endPTS,r);return e&&this.removeFragment(t.body),e})):t.body.type===s&&this.removeFragment(t.body))})}detectPartialFragments(n){let o=this.timeRanges;if(o&&"initSegment"!==n.frag.sn){let s=n.frag;var e=wh(s);let a=this.fragments[e];if(!(!a||a.buffered&&s.gap)){let r=!s.relurl;Object.keys(o).forEach(e=>{var t,i=s.elementaryStreams[e];i&&(t=o[e],i=r||!0===i.partial,a.range[e]=this.getBufferedTimes(s,n.part,i,t))}),a.loaded=null,Object.keys(a.range).length?(this.bufferedEnd(a,s),Th(a)||this.removeParts(s.sn-1,s.type)):this.removeFragment(a.body)}}}bufferedEnd(e,t){e.buffered=!0,(e.body.endList=t.endList||e.body.endList)&&(this.endListFragments[e.body.type]=e)}removeParts(t,e){var i=this.activePartLists[e];i&&(this.activePartLists[e]=Sh(i,e=>e.fragment.sn>=t))}fragBuffered(e,t){var i=wh(e);let r=this.fragments[i];!r&&t&&(r=this.fragments[i]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap)&&(this.hasGaps=!0),r&&(r.loaded=null,this.bufferedEnd(r,e))}getBufferedTimes(e,t,i,r){var s={time:[],partial:i},a=e.start,n=e.end,o=e.minEndPTS||n,l=e.maxStartPTS||a;for(let e=0;e{e=l[e];e&&Th(e)&&(s=e.body.start-o,a=e.body.end+o,t>=s)&&t<=a&&(r=Math.min(t-s,a-t),n<=r)&&(i=e.body,n=r)}),i}isEndListAppended(e){e=this.endListFragments[e];return void 0!==e&&(e.buffered||Th(e))}getState(e){e=wh(e),e=this.fragments[e];return e?e.buffered?Th(e)?bh:Eh:yh:vh}isTimeBuffered(t,i,r){var s,a;for(let e=0;e{var t,e=this.fragments[e];!e||(t=e.body).type!==s||a&&!t.gap||t.starti&&(e.buffered||n)&&this.removeFragment(t)})}removeFragment(e){var t=wh(e),i=(e.clearElementaryStreamInfo(),this.activePartLists[e.type]);if(i){let t=e.sn;this.activePartLists[e.type]=Sh(i,e=>e.fragment.sn!==t)}delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;var e=null==(e=this.hls)||null==(e=e.latestLevelDetails)?void 0:e.partList;e&&e.forEach(e=>e.clearElementaryStreamInfo())}}function Th(e){var t;return e.buffered&&!!(e.body.gap||null!=(t=e.range.video)&&t.partial||null!=(t=e.range.audio)&&t.partial||null!=(t=e.range.audiovideo)&&t.partial)}function wh(e){return e.type+`_${e.level}_`+e.sn}function Sh(e,i){return e.filter(e=>{var t=i(e);return t||e.clearElementaryStreamInfo(),t})}var kh=0,_h=1;class lm{constructor(e,t,i){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=e,this.aesIV=t,this.aesMode=i}decrypt(e,t){switch(this.aesMode){case kh:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e);case _h:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},t,e);default:throw new Error("[AESCrypto] invalid aes mode "+this.aesMode)}}}class hm{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(e){var t=new DataView(e),i=new Uint32Array(4);for(let e=0;e<4;e++)i[e]=t.getUint32(4*e);return i}initTable(){var e=this.sBox,t=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],n=i[3],i=this.invSubMix,o=i[0],l=i[1],h=i[2],d=i[3],c=new Uint32Array(256);let u=0,p=0,f=0;for(f=0;f<256;f++)f<128?c[f]=f<<1:c[f]=f<<1^283;for(f=0;f<256;f++){var g=(g=p^p<<1^p<<2^p<<3^p<<4)>>>8^255&g^99,m=c[t[e[u]=g]=u],v=c[m],y=c[v],b=257*c[g]^16843008*g;r[u]=b<<24|b>>>8,s[u]=b<<16|b>>>16,a[u]=b<<8|b>>>24,n[u]=b,b=16843009*y^65537*v^257*m^16843008*u,o[g]=b<<24|b>>>8,l[g]=b<<16|b>>>16,h[g]=b<<8|b>>>24,d[g]=b,u?(u=m^c[c[c[y^m]]],p^=c[c[p]]):u=p=1}}expandKey(s){var a=this.uint8ArrayToUint32Array_(s);let e=!0,t=0;for(;t{var i=ArrayBuffer.isView(r)?r:new Uint8Array(r),i=(this.softwareDecrypt(i,s,a,n),this.flush());i?e(i.buffer):t(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(r),s,a,n)}softwareDecrypt(e,t,i,r){var{currentIV:s,currentResult:a,remainderData:n}=this;if(r!==kh||16!==t.byteLength)return H.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),n&&(e=gl(n,e),this.remainderData=null);r=this.getValidChunk(e);if(!r.length)return null;s&&(i=s);let o=this.softwareDecrypter;(o=o||(this.softwareDecrypter=new hm)).expandKey(t);n=a;return this.currentResult=o.decrypt(r.buffer,0,i),this.currentIV=r.slice(-16).buffer,n||null}webCryptoDecrypt(t,i,r,s){if(this.key!==i||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(t,i,r,s));this.key=i,this.fastAesKey=new dm(this.subtle,i,s)}return this.fastAesKey.expandKey().then(e=>this.subtle?(this.logOnce("WebCrypto AES decrypt"),new lm(this.subtle,new Uint8Array(r),s).decrypt(t.buffer,e)):Promise.reject(new Error("web crypto not initialized"))).catch(e=>(H.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${e.name}: `+e.message),this.onWebCryptoError(t,i,r,s)))}onWebCryptoError(e,t,i,r){var s=this.enableSoftwareAES;if(s){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i,r);e=this.flush();if(e)return e.buffer}throw new Error("WebCrypto"+(s?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(e){let t=e;var i=e.length-e.length%16;return i!==e.length&&(t=e.slice(0,i),this.remainderData=e.slice(i)),t}logOnce(e){this.logEnabled&&(H.log("[decrypter]: "+e),this.logEnabled=!1)}}let Or=Math.pow(2,17);class um{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(o,l){let h=o.url;if(!h)return Promise.reject(new pm({type:Y.NETWORK_ERROR,details:q.FRAG_LOAD_ERROR,fatal:!1,frag:o,error:new Error("Fragment does not have a "+(h?"part list":"url")),networkDetails:null}));this.abort();let i=this.config,d=i.fLoader,c=i.loader;return new Promise((a,s)=>{if(this.loader&&this.loader.destroy(),o.gap){if(o.tagList.some(e=>"GAP"===e[0]))return void s(Ah(o));o.gap=!1}let n=this.loader=new(d||c)(i);var e=Lh(o),t=(o.loader=n,ah(i.fragLoadPolicy.default));let r={loadPolicy:t,timeout:t.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===o.sn?1/0:Or};o.stats=n.stats;t={onSuccess:(e,t,i,r)=>{this.resetLoader(o,n);let s=e.data;i.resetIV&&o.decryptdata&&(o.decryptdata.iv=new Uint8Array(s.slice(0,16)),s=s.slice(16)),a({frag:o,part:null,payload:s,networkDetails:r})},onError:(e,t,i,r)=>{this.resetLoader(o,n),s(new pm({type:Y.NETWORK_ERROR,details:q.FRAG_LOAD_ERROR,fatal:!1,frag:o,response:Za({url:h,data:void 0},e),error:new Error(`HTTP Error ${e.code} `+e.text),networkDetails:i,stats:r}))},onAbort:(e,t,i)=>{this.resetLoader(o,n),s(new pm({type:Y.NETWORK_ERROR,details:q.INTERNAL_ABORTED,fatal:!1,frag:o,error:new Error("Aborted"),networkDetails:i,stats:e}))},onTimeout:(e,t,i)=>{this.resetLoader(o,n),s(new pm({type:Y.NETWORK_ERROR,details:q.FRAG_LOAD_TIMEOUT,fatal:!1,frag:o,error:new Error(`Timeout after ${r.timeout}ms`),networkDetails:i,stats:e}))}};l&&(t.onProgress=(e,t,i,r)=>l({frag:o,part:null,payload:i,networkDetails:r})),n.load(e,r,t)})}loadPart(l,h,d){this.abort();let t=this.config,i=t.fLoader,c=t.loader;return new Promise((n,o)=>{if(this.loader&&this.loader.destroy(),l.gap||h.gap)o(Ah(l,h));else{let s=this.loader=new(i||c)(t),a=Lh(l,h);l.loader=s;var e=ah(t.fragLoadPolicy.default);let r={loadPolicy:e,timeout:e.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:Or};h.stats=s.stats,s.load(a,r,{onSuccess:(e,t,i,r)=>{this.resetLoader(l,s),this.updateStatsFromPart(l,h);e={frag:l,part:h,payload:e.data,networkDetails:r};d(e),n(e)},onError:(e,t,i,r)=>{this.resetLoader(l,s),o(new pm({type:Y.NETWORK_ERROR,details:q.FRAG_LOAD_ERROR,fatal:!1,frag:l,part:h,response:Za({url:a.url,data:void 0},e),error:new Error(`HTTP Error ${e.code} `+e.text),networkDetails:i,stats:r}))},onAbort:(e,t,i)=>{l.stats.aborted=h.stats.aborted,this.resetLoader(l,s),o(new pm({type:Y.NETWORK_ERROR,details:q.INTERNAL_ABORTED,fatal:!1,frag:l,part:h,error:new Error("Aborted"),networkDetails:i,stats:e}))},onTimeout:(e,t,i)=>{this.resetLoader(l,s),o(new pm({type:Y.NETWORK_ERROR,details:q.FRAG_LOAD_TIMEOUT,fatal:!1,frag:l,part:h,error:new Error(`Timeout after ${r.timeout}ms`),networkDetails:i,stats:e}))}})}})}updateStatsFromPart(e,t){var i=e.stats,r=t.stats,s=r.total,e=(i.loaded+=r.loaded,s?(s=((e=Math.round(e.duration/t.duration))-(t=Math.min(Math.round(i.loaded/s),e)))*Math.round(i.loaded/t),i.total=i.loaded+s):i.total=Math.max(i.loaded,i.total),i.loading),t=r.loading;e.start?e.first+=t.first-t.start:(e.start=t.start,e.first=t.first),e.end=t.end}resetLoader(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()}}function Lh(i,r=null){var s=r||i,r={frag:i,part:r,responseType:"arraybuffer",url:s.url,headers:{},rangeStart:0,rangeEnd:0},a=s.byteRangeStartOffset,s=s.byteRangeEndOffset;if(G(a)&&G(s)){let e=a,t=s;"initSegment"!==i.sn||"AES-128"!==(i=null==(i=i.decryptdata)?void 0:i.method)&&"AES-256"!==i||((i=s-a)%16&&(t=s+(16-i%16)),0!==a&&(r.resetIV=!0,e=a-16)),r.rangeStart=e,r.rangeEnd=t}return r}function Ah(e,t){var i=new Error(`GAP ${e.gap?"tag":"attribute"} found`),i={type:Y.MEDIA_ERROR,details:q.FRAG_GAP,fatal:!1,frag:e,error:i,networkDetails:null};return t&&(i.part=t),(t||e).stats.aborted=!0,new pm(i)}class pm extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}}class fm extends Zg{constructor(e,t){super(e,t),this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!(!this._tickInterval||(self.clearInterval(this._tickInterval),this._tickInterval=null))}clearNextTick(){return!(!this._tickTimer||(self.clearTimeout(this._tickTimer),this._tickTimer=null))}tick(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),10,end:()=>0};class bn{static isBuffered(e,t){if(e){var i=bn.getBuffered(e);for(let e=i.length;e--;)if(t>=i.start(e)&&t<=i.end(e))return!0}return!1}static bufferedRanges(e){return e?(e=bn.getBuffered(e),bn.timeRangesToArray(e)):[]}static timeRangesToArray(t){var i=[];for(let e=0;ee.start-t.start||t.end-e.end);let s=-1,a=[];if(r)for(let e=0;e=t[e].start&&i<=t[e].end&&(s=e);var n,o=a.length;o&&(n=a[o-1].end,t[e].start-nn&&(a[o-1].end=t[e].end):a.push(t[e])}else a=t;let l=0,h,d=i,c=i;for(let e=0;e{var t=e.substring(2,e.length-1),i=null==r?void 0:r[t];return void 0===i?(s.playlistParsingError||(s.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${t}"`)),e):i})}return e}function Ch(t,e,i){let r=t.variableList;r||(t.variableList=r={});let s,a;if("QUERYPARAM"in e){s=e.QUERYPARAM;try{var n=new self.URL(i).searchParams;if(!n.has(s))throw new Error(`"${s}" does not match any query parameter in URI: "${i}"`);a=n.get(s)}catch(e){t.playlistParsingError||(t.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+e.message))}}else s=e.NAME,a=e.VALUE;s in r?t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${s}"`)):r[s]=a||""}let Nr=/^(\d+)x(\d+)$/,Ur=/(.+?)=(".*?"|.*?)(?:,|$)/g;class En{constructor(e,t){Qa(this,e="string"==typeof e?En.parseAttrList(e,t):e)}get clientAttrs(){return Object.keys(this).filter(e=>"X-"===e.substring(0,2))}decimalInteger(e){e=parseInt(this[e],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(e){if(this[e]){var t=(1&(t=(this[e]||"0x").slice(2)).length?"0":"")+t,i=new Uint8Array(t.length/2);for(let e=0;eNumber.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,t){e=this[e];return e?parseFloat(e):t}enumeratedString(e){return this[e]}enumeratedStringList(e,t){e=this[e];return(e?e.split(/[ ,]+/):[]).reduce((e,t)=>(e[t.toLowerCase()]=!0,e),t)}bool(e){return"YES"===this[e]}decimalResolution(e){e=Nr.exec(this[e]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(i,r){var s={};for(Ur.lastIndex=0;null!==(n=Ur.exec(i));){var a=n[1].trim();let e=n[2];var n=0===e.indexOf('"')&&e.lastIndexOf('"')===e.length-1;let t=!1;if(n)e=e.slice(1,-1);else switch(a){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":t=!0}if(r&&(n||t))e=Ph(r,e);else if(!t&&!n)switch(a){case"CLOSED-CAPTIONS":if("NONE"===e)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":H.warn(i+`: attribute ${a} is missing quotes`)}s[a]=e}return s}}class mm{constructor(e,t,i=0){var r;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==t?void 0:t.tagAnchor)||null,this.tagOrder=null!=(r=null==t?void 0:t.tagOrder)?r:i,t){var s,a=t.attr;for(s in a)if(Object.prototype.hasOwnProperty.call(e,s)&&e[s]!==a[s]){H.warn(`DATERANGE tag attribute: "${s}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=s;break}e=Qa(new En({}),a,e)}this.attr=e,t?(this._startDate=t._startDate,this._cue=t._cue,this._endDate=t._endDate,this._dateAtEnd=t._dateAtEnd):this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr&&(r=(null==t?void 0:t.endDate)||new Date(this.attr["END-DATE"]),G(r.getTime()))&&(this._endDate=r)}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){var e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}get startTime(){var e=this.tagAnchor;return null===e||null===e.programDateTime?(H.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": `+e),NaN):e.start+(this.startDate.getTime()-e.programDateTime)/1e3}get startDate(){return this._startDate}get endDate(){var e=this._endDate||this._dateAtEnd;return e||(null!==(e=this.duration)?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*e):null)}get duration(){if("DURATION"in this.attr){var e=this.attr.decimalFloatingPoint("DURATION");if(G(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isInterstitial(){return"com.apple.hls.interstitial"===this.class}get isValid(){return!!this.id&&!this._badValueForSameId&&G(this.startDate.getTime())&&(null===this.duration||0<=this.duration)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}class vm{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){var t,i;e?(t=this.lastPartSn-e.lastPartSn,i=this.lastPartIndex-e.lastPartIndex,this.updated=this.endSN!==e.endSN||!!i||!!t||!this.live,this.advanced=this.endSN>e.endSN||0{let t=e.decryptdata;return t||(e.setKeyFormat(i.keyFormat),t=e.decryptdata),!!t&&i.matches(t)})}get hasProgramDateTime(){return!!this.fragments.length&&G(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){var e=this.driftEndTime-this.driftStartTime;return 0i)return t[e].index;return i}}return 0}get lastPartSn(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}get expired(){var e;return!!(this.live&&this.age&&this.misses<3)&&(e=this.partEnd-this.fragmentStart,this.age>Math.max(e,this.totalduration)+this.levelTargetDuration)}}function xh(e,i){return e.length===i.length&&!e.some((e,t)=>e!==i[t])}function Dh(e,t){return!e&&!t||!(!e||!t)&&xh(e,t)}function Oh(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function Mh(e){switch(e){case"AES-128":case"AES-256":return kh;case"AES-256-CTR":return _h;default:throw new Error("invalid full segment method "+e)}}function Fh(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function Nh(e){return Uint8Array.from(unescape(encodeURIComponent(e)),e=>e.charCodeAt(0))}function Uh(e){function t(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}t(e,0,3),t(e,1,2),t(e,4,5),t(e,6,7)}function $h(e){var t,i,e=e.split(":");let r=null;return"data"===e[0]&&2===e.length&&2===(t=(e=e[1].split(";"))[e.length-1].split(",")).length&&(i="base64"===t[0],t=t[1],r=i?(e.splice(-1,1),Fh(t)):(i=Nh(i=t).subarray(0,16),(e=new Uint8Array(16)).set(i,16-i.length),e)),r}let $r="undefined"!=typeof self?self:void 0;var an={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Bh="org.w3.clearkey",Vh="com.apple.streamingkeydelivery",jh="com.microsoft.playready",Gh="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Hh(e){switch(e){case Vh:return an.FAIRPLAY;case jh:return an.PLAYREADY;case Gh:return an.WIDEVINE;case Bh:return an.CLEARKEY}}function zh(e){switch(e){case an.FAIRPLAY:return Vh;case an.PLAYREADY:return jh;case an.WIDEVINE:return Gh;case an.CLEARKEY:return Bh}}function Kh(e){let{drmSystems:t,widevineLicenseUrl:i}=e;e=t?[an.FAIRPLAY,an.WIDEVINE,an.PLAYREADY,an.CLEARKEY].filter(e=>!!t[e]):[];return!e[an.WIDEVINE]&&i&&e.push(an.WIDEVINE),e}let Br=null!=$r&&null!=(Wa=$r.navigator)&&Wa.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function Wh(e){e=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),e=String.fromCharCode.apply(null,Array.from(e)),e=e.substring(e.indexOf("<"),e.length),e=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("KID")[0];if(e){var e=e.childNodes[0]?e.childNodes[0].nodeValue:e.getAttribute("VALUE");if(e)return Uh(e=Fh(e).subarray(0,16)),e}return null}let Vr={};class ym{static clearKeyUriToKeyIdMap(){Vr={}}static setKeyIdForUri(e,t){Vr[e]=t}static addKeyIdForUri(e){var t=Object.keys(Vr).length%Number.MAX_SAFE_INTEGER,i=new Uint8Array(16);return new DataView(i.buffer,12,4).setUint32(0,t),Vr[e]=i}constructor(e,t,i,r=[1],s=null,a){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&!Oh(e),null!=a&&a.startsWith("0x")&&(this.keyId=new Uint8Array(Wo(a)))}matches(e){return e.uri===this.uri&&e.method===this.method&&e.encrypted===this.encrypted&&e.keyFormat===this.keyFormat&&xh(e.keyFormatVersions,this.keyFormatVersions)&&Dh(e.iv,this.iv)&&Dh(e.keyId,this.keyId)}isSupported(){if(this.method){if(Oh(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case Vh:case Gh:case jh:case Bh:return-1!==["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1}getDecryptData(t,i){if(!this.encrypted||!this.uri)return null;if(Oh(this.method)){let e=this.iv;return e||("number"!=typeof t&&(H.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0),e=(t=>{var i=new Uint8Array(16);for(let e=12;e<16;e++)i[e]=t>>8*(15-e)&255;return i})(t)),new ym(this.method,this.uri,"identity",this.keyFormatVersions,e)}if(this.keyId){t=Vr[this.uri];if(t&&!xh(this.keyId,t)&&ym.setKeyIdForUri(this.uri,this.keyId),this.pssh)return this}var r,s=$h(this.uri);if(s)switch(this.keyFormat){case Gh:this.pssh=s,this.keyId||(r=Tl(s.buffer)).length&&(r=r[0],this.keyId=null!=(e=r.kids)&&e.length?r.kids[0]:null),this.keyId||(this.keyId=Yh(i));break;case jh:var e=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=El(e,0,s),this.keyId=Wh(s);break;default:{let e=s.subarray(0,16);16!==e.length&&((r=new Uint8Array(16)).set(e,16-e.length),e=r),this.keyId=e;break}}if(!this.keyId||16!==this.keyId.byteLength){let e;(e=(e=(e=(e=>(e=null==e?void 0:e[Gh])?e.keyId:null)(i))||Yh(i))||Vr[this.uri])&&(this.keyId=e,ym.setKeyIdForUri(this.uri,e))}return this}}function Yh(e){e=null==e?void 0:e[jh];if(e){e=$h(e.uri);if(e)return Wh(e)}return null}let jr=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,Gr=/#EXT-X-MEDIA:(.*)/g,Hr=/^#EXT(?:INF|-X-TARGETDURATION):/m,zr=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),Kr=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class bm{static findGroup(t,i){for(let e=0;e({id:e.attrs.AUDIO,audioCodec:e.audioCodec})),SUBTITLES:s.map(e=>({id:e.attrs.SUBTITLES,textCodec:e.textCodec})),"CLOSED-CAPTIONS":[]};let n=0;for(Gr.lastIndex=0;null!==(f=Gr.exec(e));){var o,l,h,d,c,u,p,f=new En(f[1],i),g=f.TYPE;g&&(o=a[g],l=r[g]||[],r[g]=l,p=f.LANGUAGE,h=f["ASSOC-LANGUAGE"],d=f.CHANNELS,c=f.CHARACTERISTICS,u=f["INSTREAM-ID"],g={attrs:f,bitrate:0,id:n++,groupId:f["GROUP-ID"]||"",name:f.NAME||p||"",type:g,default:f.bool("DEFAULT"),autoselect:f.bool("AUTOSELECT"),forced:f.bool("FORCED"),lang:p,url:f.URI?bm.resolve(f.URI,t):""},h&&(g.assocLang=h),d&&(g.channels=d),c&&(g.characteristics=c),u&&(g.instreamId=u),null!=o&&o.length&&(Jh(g,p=bm.findGroup(o,g.groupId)||o[0],"audioCodec"),Jh(g,p,"textCodec")),l.push(g))}return r}static parseLevelPlaylist(e,t,i,r,F,N){var s={url:t},a=new vm(t),n=a.fragments,o=[];let l=null,h=0,d=0,c=0,u=0,p=0,f=null,g=new tm(r,s),m,v,y,b=-1,E=!1,T=null,w;if(zr.lastIndex=0,a.m3u8=e,a.hasVariableRefs=Ih(e),"#EXTM3U"!==(null==(M=zr.exec(e))?void 0:M[0]))a.playlistParsingError=new Error("Missing format identifier #EXTM3U");else{for(;null!==(m=zr.exec(e));){E&&(E=!1,(g=new tm(r,s)).playlistOffset=c,g.setStart(c),g.sn=h,g.cc=u,p&&(g.bitrate=p),g.level=i,l)&&((g.initSegment=l).rawProgramDateTime&&(g.rawProgramDateTime=l.rawProgramDateTime,l.rawProgramDateTime=null),T)&&(g.setByteRange(T),T=null);var S=m[1];if(S){g.duration=parseFloat(S);var k=(" "+m[2]).slice(1);g.title=k||null,g.tagList.push(k?["INF",S,k]:["INF",S])}else if(m[3])G(g.duration)&&(g.playlistOffset=c,g.setStart(c),y&&id(g,y,a),g.sn=h,g.level=i,g.cc=u,n.push(g),k=(" "+m[3]).slice(1),g.relurl=Ph(a,k),ed(g,f,o),f=g,c+=g.duration,h++,d=0,E=!0);else if(m=m[0].match(Kr)){for(v=1;v{let r=t[i];for(let e=i;e--;){var s=t[e];if(!s)return;s.programDateTime=r.programDateTime-1e3*s.duration,r=s}})(n,b),V)&&o.unshift(V),a.fragmentHint&&(c+=a.fragmentHint.duration),a.totalduration=c,o.length&&a.dateRangeTagCount&&V&&qh(o,a),a.endCC=u}return a}}function qh(t,i){let r=t.length;if(!r){if(!i.hasProgramDateTime)return;var e=i.fragments[i.fragments.length-1];t.push(e),r++}var s=t[r-1],a=i.live?1/0:i.totalduration,n=Object.keys(i.dateRanges);for(let e=n.length;e--;){var o=i.dateRanges[n[e]],l=o.startDate.getTime();o.tagAnchor=s.ref;for(let e=r;e--;){if((null==(h=t[e])?void 0:h.sn){var a=r[s];if(a){var n=a.programDateTime;if(n<=i||0===s){var o=((null==(o=r[s+1])?void 0:o.start)||e)-a.start;if(i<=n+1e3*o){var l=r[s].sn-t.startSN;if(l<0)return-1;var h=t.fragments;if(h.length>r.length)for(let e=(r[s+1]||h[h.length-1]).sn-t.startSN;e>l;e--){var d=h[e].programDateTime;if(d<=i&&ie);["video","audio","text"].forEach(t=>{let i=s.filter(e=>wl(e,t));i.length&&(r[t+"Codec"]=i.map(e=>e.split("/")[0]).join(","),s=s.filter(e=>-1===i.indexOf(e)))}),r.unknownCodecs=s}function Jh(e,t,i){t=t[i];t&&(e[i]=t)}function ed(e,t,i){e.rawProgramDateTime?i.push(e):null!=t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime)}function td(e,t,i,r){e.relurl=t.URI,t.BYTERANGE&&e.setByteRange(t.BYTERANGE),e.level=i,e.sn="initSegment",r&&(e.levelkeys=r),e.initSegment=null}function id(e,t,i){e.levelkeys=t;i=i.encryptedFragments;i.length&&i[i.length-1].levelkeys===t||!Object.keys(t).some(e=>t[e].isCommonEncryption)||i.push(e)}function rd(e,t,i){e.playlistParsingError=new Error(`#EXT-X-${t} must not appear more than once (${i[0]})`)}function sd(e,t,i){e.playlistParsingError=new Error(`#EXT-X-${t} must appear before the first Media Segment (${i[0]})`)}function ad(i,r){var s=r.startPTS;if(G(s)){let e=0,t;(t=r.sn>i.sn?(e=s-i.start,i):(e=i.start-s,r)).duration!==e&&t.setDuration(e)}else r.sn>i.sn?i.cc===r.cc&&i.minEndPTS?r.setStart(i.start+(i.minEndPTS-i.start)):r.setStart(i.start+i.duration):r.setStart(Math.max(i.start-r.duration,0))}function nd(e,t,i,r,s,a,n){r-i<=0&&(n.warn("Fragment should have a positive duration",t),r=i+t.duration,a=s+t.duration);let o=i,l=r;var h=t.startPTS,d=t.endPTS,n=(G(h)&&(c=Math.abs(h-i),e&&c>e.totalduration?n.warn(`media timestamps and playlist times differ by ${c}s for level ${t.level} `+e.url):G(t.deltaPTS)?t.deltaPTS=Math.max(c,t.deltaPTS):t.deltaPTS=c,o=Math.max(i,h),i=Math.min(i,h),s=void 0!==t.startDTS?Math.min(s,t.startDTS):s,l=Math.min(r,d),r=Math.max(r,d),a=void 0!==t.endDTS?Math.max(a,t.endDTS):a),i-t.start),c=(0!==t.start&&t.setStart(i),t.setDuration(r-t.start),t.startPTS=i,t.maxStartPTS=o,t.startDTS=s,t.endPTS=r,t.minEndPTS=l,t.endDTS=a,t.sn);if(!e||ce.endSN)return 0;let u;var h=c-e.startSN,p=e.fragments;for(p[h]=t,u=h;0{var a=r.skippedSegments,e=Math.max(i.startSN,r.startSN)-r.startSN,n=(i.fragmentHint?1:0)+(a?r.endSN:Math.min(i.endSN,r.endSN))-r.startSN,o=r.startSN-i.startSN,l=r.fragmentHint?r.fragments.concat(r.fragmentHint):r.fragments,h=i.fragmentHint?i.fragments.concat(i.fragmentHint):i.fragments;for(let t=e;t<=n;t++){var d=h[o+t];let e=l[t];if(a&&!e&&d&&(e=r.fragments[t]=d),d&&e){s(d,e,t,l);var c=d.relurl,u=e.relurl;if(c&&((e,t)=>e!==t&&t&&md(e)!==md(t))(c,u))return r.playlistParsingError=ld(`media sequence mismatch ${e.sn}:`,i,r,0,e);if(d.cc!==e.cc)return r.playlistParsingError=ld(`discontinuity sequence mismatch (${d.cc}!=${e.cc})`,i,r,0,e)}}})(e,o,(e,t,i,r)=>{if((!o.startCC||o.skippedSegments)&&t.cc!==e.cc){var s=e.cc-t.cc;for(let e=i;e{var t;!e||e.initSegment&&e.initSegment.relurl!==(null==(t=a)?void 0:t.relurl)||(e.initSegment=a)}),o.skippedSegments){if(o.deltaUpdateFailed=s.some(e=>!e),o.deltaUpdateFailed){t.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let e=o.skippedSegments;e--;)s.shift();o.startSN=s[0].sn}else{o.canSkipDateRanges&&(o.dateRanges=((e,t,r)=>{let{dateRanges:s,recentlyRemovedDateranges:i}=t,a=Qa({},e),n=(i&&i.forEach(e=>{delete a[e]}),Object.keys(a)),o=n.length;return o?(Object.keys(s).forEach(e=>{var t=a[e],i=new mm(s[e].attr,t);i.isValid?(a[e]=i,t||(i.tagOrder+=o)):r.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${B(s[e].attr)}"`)}),a):s})(e.dateRanges,o,t));var h=e.fragments.filter(e=>e.rawProgramDateTime);if(e.hasProgramDateTime&&!o.hasProgramDateTime)for(let e=1;e{t.elementaryStreams=e.elementaryStreams,t.stats=e.stats};if(d&&c){let i=0;for(let e=0,t=d.length;e<=t;e++){var p=d[e],f=c[e+i];p&&f&&p.index===f.index&&p.fragment.sn===f.fragment.sn?u(p,f):i--}}n?nd(o,n,n.startPTS,n.endPTS,n.startDTS,n.endDTS,t):hd(e,o),s.length&&(o.totalduration=o.edge-s[0].start),o.driftStartTime=e.driftStartTime,o.driftStart=e.driftStart;var g=o.advancedDateTime;o.advanced&&g?(t=o.edge,o.driftStart||(o.driftStartTime=g,o.driftStart=t),o.driftEndTime=g,o.driftEnd=t):(o.driftEndTime=e.driftEndTime,o.driftEnd=e.driftEnd,o.advancedDateTime=e.advancedDateTime),-1===o.requestScheduled&&(o.requestScheduled=e.requestScheduled)}}function ld(e,t,i,r,s){return new Error(`${e} ${s.url} Playlist starting @${t.startSN} ${t.m3u8} Playlist starting @${i.startSN} `+i.m3u8)}function hd(e,t,i=!0){var r=t.startSN+t.skippedSegments-e.startSN,s=e.fragments,a=0<=r;let n=0;if(a&&rt&&(t=1e3*e[e.length-1].duration){null!=(e=e.details)&&e.fragments.forEach(e=>{e.level=t,e.initSegment&&(e.initSegment.level=t)})})}function md(e){return e.replace(/\?[^?]*$/,"")}function vd(i,r){for(let e=0,t=i.length;er.startCC&&(i=Math.min(t.endCC,e.endCC),r=vd(t.fragments,i),t=vd(e.fragments,i),r)&&t&&(H.log("Aligning playlist at start of dicontinuity sequence "+i),bd(r.start-t.start,e))}function Td(i,r){if(i.hasProgramDateTime&&r.hasProgramDateTime){var s=i.fragments,a=r.fragments;if(s.length&&a.length){let e,t;var n=Math.min(r.endCC,i.endCC),r=(r.startCC{var{config:e,fragCurrent:t,media:i,mediaBuffer:r,state:s}=this,a=i?i.currentTime:0,r=bn.bufferInfo(r||i,a,e.maxBufferHole),n=!r.len;this.log(`Media seeking to ${G(a)?a.toFixed(3):a}, state: ${s}, ${n?"out of":"in"} buffer`),this.state===k.ENDED?this.resetLoadingState():t&&(s=e.maxFragLookUpTolerance,e=t.start-s,s=t.start+t.duration+s,n||sr.end)&&(s=s{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=s,this.hls=e,this.fragmentLoader=new um(e.config),this.keyLoader=i,this.fragmentTracker=t,this.config=e.config,this.decrypter=new cm(e.config)}registerListeners(){var e=this.hls;e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){var e=this.hls;e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){var e;this.state!==k.STOPPED&&(this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType),null!=(e=this.fragCurrent)&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=k.STOPPED)}get startPositionValue(){var{nextLoadPosition:e,startPosition:t}=this;return-1===t&&e?e:t}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(e,t){var i,r;return!(t.live||!this.media||(e.end||0)<=(i=this.config.timelineOffset||0)||(r=e.buffered,(r=(e=this.config.maxBufferHole&&r&&1{var t=e.frag;this.fragContextChanged(t)?(this.warn(`${t.type} sn: ${t.sn}${e.part?" part: "+e.part.index:""} of ${this.fragInfo(t,!1,e.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(t)):(t.stats.chunkCount++,this._handleFragmentLoadProgress(e))}).then(e=>{var t,i;e&&(t=this.state,i=e.frag,this.fragContextChanged(i)?t!==k.FRAG_LOADING&&(this.fragCurrent||t!==k.PARSING)||(this.fragmentTracker.removeFragment(i),this.state=k.IDLE):("payload"in e&&(this.log(`Loaded ${i.type} sn: ${i.sn} of ${this.playlistLabel()} `+i.level),this.hls.trigger(X.FRAG_LOADED,e)),this._handleFragmentLoadComplete(e)))}).catch(e=>{this.state!==k.STOPPED&&this.state!==k.ERROR&&(this.warn("Frag error: "+((null==e?void 0:e.message)||e)),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(e){var t,i,r=this.fragmentTracker;r.getState(e)===yh?(t=e.type,t=this.getFwdBufferInfo(this.mediaBuffer,t),t=Math.max(e.duration,t?t.len:this.config.maxBufferLength),1!=((i=this.backtrackFragment)?e.sn-i.sn:0)&&!this.reduceMaxBufferLength(t,e.duration)||r.removeFragment(e)):0===(null==(i=this.mediaBuffer)?void 0:i.buffered.length)?r.removeAllFragments():r.hasParts(e.type)&&(r.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),r.getState(e)===bh)&&r.removeFragment(e)}checkLiveUpdate(e){var t;e.updated&&!e.live&&(t=e.fragments[e.fragments.length-1],this.fragmentTracker.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type})),e.fragments[0]||(e.deltaUpdateFailed=!0)}waitForLive(e){var t=e.details;return(null==t?void 0:t.live)&&"EVENT"!==t.type&&(this.levelLastLoaded!==e||t.expired)}flushMainBuffer(e,t,i=null){e-t&&(e={startOffset:e,endOffset:t,type:i},this.hls.trigger(X.BUFFER_FLUSHING,e))}_loadInitSegment(t,e){this._doFragLoad(t,e).then(e=>{var t=null==e?void 0:e.frag;if(t&&!this.fragContextChanged(t)&&this.levels)return e;throw new Error("init load aborted")}).then(r=>{let s=this.hls,{frag:a,payload:e}=r;var t=a.decryptdata;if(e&&0{throw s.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:a}),e}).then(e=>{var t=self.performance.now();return s.trigger(X.FRAG_DECRYPTED,{frag:a,payload:e,stats:{tstart:i,tdecrypt:t}}),r.payload=e,this.completeInitSegmentLoad(r)})}return this.completeInitSegmentLoad(r)}).catch(e=>{this.state!==k.STOPPED&&this.state!==k.ERROR&&(this.warn(e),this.resetFragmentLoading(t))})}completeInitSegmentLoad(e){var t=this.levels;if(!t)throw new Error("init load aborted, missing levels");t=e.frag.stats;this.state!==k.STOPPED&&(this.state=k.IDLE),e.frag.data=new Uint8Array(e.payload),t.parsing.start=t.buffering.start=self.performance.now(),t.parsing.end=t.buffering.end=self.performance.now(),this.tick()}unhandledEncryptionError(e,t){var i,e=e.tracks;return!(!e||t.encrypted||!(null!=(i=e.audio)&&i.encrypted||null!=(i=e.video)&&i.encrypted)||this.config.emeEnabled&&this.keyLoader.emeController||(e=this.media,i=new Error(`Encrypted track with no key in ${this.fragInfo(t)} (media ${e?"attached mediaKeys: "+e.mediaKeys:"detached"})`),this.warn(i.message),!e)||e.mediaKeys||(this.hls.trigger(X.ERROR,{type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_NO_KEYS,fatal:!1,error:i,frag:t}),this.resetTransmuxer(),0))}fragContextChanged(e){var t=this.fragCurrent;return!e||!t||e.sn!==t.sn||e.level!==t.level}fragBufferedComplete(e,t){var i=this.mediaBuffer||this.media;if(this.log(`Buffered ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.fragInfo(e,!1,t)} > buffer:${i?Wr.toString(bn.getBuffered(i)):"(detached)"})`),en(e)){if(e.type!==$o){let t=e.elementaryStreams;if(!Object.keys(t).some(e=>!!t[e]))return void(this.state=k.IDLE)}i=null==(t=this.levels)?void 0:t[e.level];null!=i&&i.fragmentError&&(this.log(`Resetting level fragment error count of ${i.fragmentError} on frag buffered`),i.fragmentError=0)}this.state=k.IDLE}_handleFragmentLoadComplete(e){var t,i,r=this.transmuxer;r&&({frag:e,part:t,partsLoaded:i}=e,i=!i||0===i.length||i.some(e=>!e),e=new gm(e.level,e.sn,e.stats.chunkCount+1,0,t?t.index:-1,!i),r.flush(e))}_handleFragmentLoadProgress(e){}_doFragLoad(i,r,s=null,a){this.fragCurrent=i;var n=r.details;if(!this.levels||!n)throw new Error(`frag load aborted, missing level${n?"":" detail"}s`);let o=null;if(!i.encrypted||null!=(l=i.decryptdata)&&l.key)i.encrypted||(o=this.keyLoader.loadClear(i,n.encryptedFragments,this.startFragRequested))&&this.log("[eme] blocking frag load until media-keys acquired");else if(this.log(`Loading key for ${i.sn} of [${n.startSN}-${n.endSN}], ${this.playlistLabel()} `+i.level),this.state=k.KEY_LOADING,this.fragCurrent=i,o=this.keyLoader.load(i).then(e=>{if(!this.fragContextChanged(e.frag))return this.hls.trigger(X.KEY_LOADED,e),this.state===k.KEY_LOADING&&(this.state=k.IDLE),e}),this.hls.trigger(X.KEY_LOADING,{frag:i}),null===this.fragCurrent)return this.log("context changed in KEY_LOADING"),Promise.resolve(null);var l=this.fragPrevious;if(!en(i)||l&&i.sn===l.sn||(h=this.shouldLoadParts(r.details,i.end))!==this.loadingParts&&(this.log(`LL-Part loading ${h?"ON":"OFF"} loading sn ${null==l?void 0:l.sn}->`+i.sn),this.loadingParts=h),s=Math.max(i.start,s||0),this.loadingParts&&en(i)){l=n.partList;if(l&&a){s>n.fragmentEnd&&n.fragmentHint&&(i=n.fragmentHint);var h=this.getNextPart(l,i,s);if(-1!e||this.fragContextChanged(e.frag)?null:this.doFragPartsLoad(i,t,r,a)).catch(e=>this.handleFragLoadError(e)):this.doFragPartsLoad(i,t,r,a).catch(e=>this.handleFragLoadError(e)),this.hls.trigger(X.FRAG_LOADING,{frag:i,part:t,targetBufferTime:s}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):e}if(!i.url||this.loadedEndOfParts(l,s))return Promise.resolve(null)}}if(en(i)&&this.loadingParts)this.log(`LL-Part loading OFF after next part miss @${s.toFixed(2)} Check buffer at sn: ${i.sn} loaded parts: `+(null==(h=n.partList)?void 0:h.filter(e=>e.loaded).map(e=>`[${e.start}-${e.end}]`))),this.loadingParts=!1;else if(!i.url)return Promise.resolve(null);this.log(`Loading ${i.type} sn: ${i.sn} of ${this.fragInfo(i,!1)}) cc: ${i.cc} ${"["+n.startSN+"-"+n.endSN+"]"}, target: `+parseFloat(s.toFixed(3))),G(i.sn)&&!this.bitrateTest&&(this.nextLoadPosition=i.start+i.duration),this.state=k.FRAG_LOADING;let t=this.config.progressive&&i.type!==$o,e;return e=t&&o?o.then(e=>!e||this.fragContextChanged(e.frag)?null:this.fragmentLoader.load(i,a)).catch(e=>this.handleFragLoadError(e)):Promise.all([this.fragmentLoader.load(i,t?a:void 0),o]).then(([e])=>(!t&&a&&a(e),e)).catch(e=>this.handleFragLoadError(e)),this.hls.trigger(X.FRAG_LOADING,{frag:i,targetBufferTime:s}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):e}doFragPartsLoad(o,i,l,h){return new Promise((r,e)=>{let t,s=[],a=null==(t=l.details)?void 0:t.partList,n=i=>{this.fragmentLoader.loadPart(o,i,h).then(e=>{var t=(s[i.index]=e).part,e=(this.hls.trigger(X.FRAG_LOADED,e),pd(l.details,o.sn,i.index+1)||fd(a,o.sn,i.index+1));if(!e)return r({frag:o,part:t,partsLoaded:s});n(e)}).catch(e)};n(i)})}handleFragLoadError(e){var t;return"data"in e?(t=e.data).frag&&t.details===q.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):t.frag&&t.type===Y.KEY_SYSTEM_ERROR?(t.frag.abortRequests(),this.resetStartWhenNotLoaded(),this.resetFragmentLoading(t.frag)):this.hls.trigger(X.ERROR,t):this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0}),null}_handleTransmuxerFlush(e){var t,i,r,s=this.getCurrentContext(e);s&&this.state===k.PARSING?({frag:s,part:t,level:i}=s,r=self.performance.now(),s.stats.parsing.end=r,t&&(t.stats.parsing.end=r),(r=(r=this.getLevelDetails())&&s.sn>r.endSN||this.shouldLoadParts(r,s.end))!==this.loadingParts&&(this.log(`LL-Part loading ${r?"ON":"OFF"} after parsing segment ending @`+s.end.toFixed(2)),this.loadingParts=r),this.updateLevelTiming(s,t,i,e.partial)):this.fragCurrent||this.state===k.STOPPED||this.state===k.ERROR||(this.state=k.IDLE)}shouldLoadParts(e,t){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(e.partList){var i=e.partList[0];if(i.fragment.type===$o)return!1;var e=i.end+((null==(e=e.fragmentHint)?void 0:e.duration)||0);if(e<=t)if((this.hls.hasEnoughToStart?(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime:this.getLoadPosition())>i.start-i.fragment.duration)return!0}}return!1}getCurrentContext(e){var t,{levels:i,fragCurrent:r}=this,{level:e,sn:s,part:a}=e;return null!=i&&i[e]?(t=(i=i[e]).details,(t=(a=-1i&&this.flushMainBuffer(r,e.start)):this.flushMainBuffer(0,e.start))}getFwdBufferInfo(e,t){var i,r=this.getLoadPosition();return G(r)?(i=this.lastCurrentTime>r||null!=(i=this.media)&&i.paused?0:this.config.maxBufferHole,this.getFwdBufferInfoAtPos(e,r,t,i)):null}getFwdBufferInfoAtPos(e,t,i,r){var s=bn.bufferInfo(e,t,r);if(0===s.len&&void 0!==s.nextStart){var i=this.fragmentTracker.getBufferedFrag(t,i);if(i&&(s.nextStart<=i.end||i.gap))return i=Math.max(Math.min(s.nextStart,i.end)-t,r),bn.bufferInfo(e,t,i)}return s}getMaxBufferLength(e){var t=this.config;let i;return i=e?Math.max(8*t.maxBufferSize/e,t.maxBufferLength):t.maxBufferLength,Math.min(i,t.maxMaxBufferLength)}exceedsMaxBuffer(e,i,r){var t=e.nextStart;if(t&&r.start>t){var s=e.buffered;if(s){let t=e.len;var a=e.bufferedIndex;for(let e=s.length-1;e>a;e--)s[e].start=i}}return!1}reduceMaxBufferLength(e,t){var i=this.config,r=Math.max(Math.min(e-t,i.maxBufferLength),t),e=Math.max(e-3*t,i.maxMaxBufferLength/2,r);return r<=e&&(i.maxMaxBufferLength=e,this.warn(`Reduce max buffer length to ${e}s`),!0)}getAppendedFrag(e,t=qa){e=this.fragmentTracker?this.fragmentTracker.getAppendedFrag(e,t):null;return e&&"fragment"in e?e.fragment:e}getNextFragment(i,r){var e=r.fragments,s=e.length;if(!s)return null;var a=this.config,n=r.fragmentStart,o=a.lowLatencyMode&&!!r.partList;let l=null;if(r.live){var a=a.initialLiveManifestSize;if(s=s)return t=a.sn,this.loopSn!==t&&(this.log(`buffer full after gaps in "${r}" playlist starting at sn: `+t),this.loopSn=t),null}return this.loopSn=void 0,a}get primaryPrefetch(){var e;if(Sd(this.config)&&(null==(e=this.hls.interstitialsManager)||null==(e=e.playingItem)?void 0:e.event))return!0;return!1}filterReplacedPrimary(t,e){if(t&&Sd(this.config)&&t.type!==$o){var i=this.hls.interstitialsManager,r=null==i?void 0:i.bufferingItem;if(r){var s=r.event;if(s){if(s.appendInPlace||1r.end&&r.nextEvent&&(r.nextEvent.appendInPlace||1=n.startTime&&t.end<=n.resumeTime)return null}}return t}mapToInitFragWhenRequired(e){return null==e||!e.initSegment||e.initSegment.data||this.bitrateTest?e:e.initSegment}getNextPart(i,r,s){let a=-1,n=!1,o=!0;for(let e=0,t=i.length;e=e.startSN&&t<=e.endSN&&(i=i[t-e.startSN],r.cc===i.cc)&&(s=i,this.log("Live playlist, switching playlist, load frag with next SN: "+s.sn)),s)||(s=Jl(e,r.cc,r.end))&&this.log("Live playlist, switching playlist, load frag with same CC: "+s.sn)):null!==(t=this.hls.liveSyncPosition)&&(s=this.getFragmentAtPosition(t,this.bitrateTest?e.fragmentEnd:e.edge,e)),s}getFragmentAtPosition(e,t,i){var r=this.config;let s=this.fragPrevious,{fragments:a,endSN:n}=i;var o=i.fragmentHint,r=r.maxFragLookUpTolerance,l=i.partList,h=!!(this.loadingParts&&null!=l&&l.length&&o);h&&!this.bitrateTest&&l[l.length-1].fragment.sn===o.sn&&(a=a.concat(o),n=o.sn);let d;return(d=ed.sn||!i.live)&&d.level===s.level&&(e=a[1+o],d=d.sn${e.startSN} fragments: `+n),i):r):(this.warn("No fragments in live playlist"),0)}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)}setStartPosition(e,t){let i=this.startPosition;i `+(null==(r=this.fragCurrent)?void 0:r.url));else{var r=t.details===q.FRAG_GAP,s=(r&&this.fragmentTracker.fragBuffered(i,!0),t.errorAction);if(s){var{action:a,flags:n,retryCount:o=0,retryConfig:l}=s,h=!!l,d=h&&a===ch,h=h&&!s.resolved&&n===ph,n=null==(n=this.hls.latestLevelDetails)?void 0:n.live;if(!d&&h&&en(i)&&!i.endList&&n&&!ih(t))this.resetFragmentErrors(e),this.treatAsGap(i),s.resolved=!0;else if((d||h)&&o":e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(s,e,a,n){let o=a.details;if(o){if(!Object.keys(s.elementaryStreams).reduce((e,t)=>{var i,r=s.elementaryStreams[t];return r?(i=r.endPTS-r.startPTS)<=0?(this.warn(`Could not parse fragment ${s.sn} ${t} duration reliably (${i})`),e||!1):(i=n?0:nd(o,s,r.startPTS,r.endPTS,r.startDTS,r.endDTS,this),this.hls.trigger(X.LEVEL_PTS_UPDATED,{details:o,level:a,drift:i,type:t,frag:s,start:r.startPTS,end:r.endPTS}),!0):e},!1)){var t=null===(null==(t=this.transmuxer)?void 0:t.error);if((0===a.fragmentError||t&&(a.fragmentError<2||s.endList))&&this.treatAsGap(s,a),t){t=new Error(`Found no media in fragment ${s.sn} of ${this.playlistLabel()} ${s.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(t.message),this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.FRAG_PARSING_ERROR,fatal:!1,error:t,frag:s,reason:`Found no media in msn ${s.sn} of ${this.playlistLabel()} "${a.url}"`}),!this.hls)return;this.resetTransmuxer()}}this.state=k.PARSED,this.log(`Parsed ${s.type} sn: ${s.sn}${e?" part: "+e.index:""} of ${this.fragInfo(s,!1,e)})`),this.hls.trigger(X.FRAG_PARSED,{frag:s,part:e})}else this.warn("level.details undefined")}playlistLabel(){return this.playlistType===qa?"level":"track"}fragInfo(e,t=!0,i){var r;return`${this.playlistLabel()} ${e.level} (${i?"part":"frag"}:[${(null!=(r=t&&!i?e.startPTS:(i||e).start)?r:NaN).toFixed(3)}-${(null!=(r=t&&!i?e.endPTS:(i||e).end)?r:NaN).toFixed(3)}]`+(i&&"main"===e.type?"INDEPENDENT="+(i.independent?"YES":"NO"):"")}treatAsGap(e,t){t&&t.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}resetTransmuxer(){var e;null!=(e=this.transmuxer)&&e.reset()}recoverWorkerError(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(),this.resetLoadingState())}set state(e){var t=this._state;t!==e&&(this._state=e,this.log(t+"->"+e))}get state(){return this._state}}function Sd(e){return e.interstitialsController&&!1!==e.enableInterstitialPlayback}class Tm{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){var{chunks:e,dataLength:t}=this;let i;return e.length?(i=1===e.length?e[0]:((t,e)=>{let i=new Uint8Array(e),r=0;for(let e=0;e>>5}function Ud(e,t){return t+1{var s=(n=t[i+2])>>2&15;if(!(12>6&3),t=t[i+3]>>6&3|(1&n)<<2,i="mp4a.40."+a,n=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][s];let e=s;5!=a&&29!=a||(e-=3);var o=[a<<3|(14&e)>>1,(1&e)<<7|t<<3];return H.log(`manifest codec:${r}, parsed codec:${i}, channels:${t}, rate:${n} (ADTS object type:${a} sampling index:${s})`),{config:o,samplerate:n,channelCount:t,codec:i,parsedCodec:i,manifestCodec:r}}a=new Error("invalid ADTS sampling index:"+s),e.emit(X.ERROR,X.ERROR,{type:Y.MEDIA_ERROR,details:q.FRAG_PARSING_ERROR,fatal:!0,error:a,reason:a.message})})(t,i,r,s))&&Qa(e,t)}function Bd(e){return 9216e4/e}function Vd(e,t,i,r,s){var a,n,r=r+s*Bd(e.samplerate),s=((e,t)=>{var i=Fd(e,t);if(t+i<=e.length){e=Nd(e,t)-i;if(0e instanceof ArrayBuffer?e:e.buffer)(i),t=1;"BYTES_PER_ELEMENT"in a&&(t=a.BYTES_PER_ELEMENT);var i=((n=(e=>e&&e.buffer instanceof ArrayBuffer&&void 0!==e.byteLength&&void 0!==e.byteOffset)(i)?i.byteOffset:0)+i.byteLength)/t,n=(n+r)/t,r=Math.floor(Math.max(0,Math.min(n,i))),n=Math.floor(Math.min(r+Math.max(s,0),i));return new a(e,r,n-r)}}function Gd(t){var i={key:t.type,description:"",data:"",mimeType:null,pictureType:null};if(!(t.size<2))if(3!==t.data[0])console.log("Ignore frame with unrecognized character encoding");else{var r=t.data.subarray(1).indexOf(0);if(-1!==r){var s=Ko(jd(t.data,1,r)),a=t.data[2+r],n=t.data.subarray(3+r).indexOf(0);if(-1!==n){var o=Ko(jd(t.data,3+r,n));let e;return e="--\x3e"===s?Ko(jd(t.data,4+r+n)):(t=t.data.subarray(4+r+n))instanceof ArrayBuffer?t:(0==t.byteOffset&&t.byteLength==t.buffer.byteLength?t:new Uint8Array(t)).buffer,i.mimeType=s,i.pictureType=a,i.description=o,i.data=e,i}}}}function Hd(e){var t,i,r,s,a;return"PRIV"===e.type?(t=e).size<2?void 0:(i=Ko(t.data,!0),a=new Uint8Array(t.data.subarray(i.length+1)),{key:t.type,info:i,data:a.buffer}):"W"===e.type[0]?"WXXX"===(t=e).type?t.size<2?void 0:(i=1,i+=(r=Ko(t.data.subarray(1),!0)).length+1,i=Ko(t.data.subarray(i)),{key:t.type,info:r,data:i}):(r=Ko(t.data),{key:t.type,info:"",data:r}):"APIC"===e.type?Gd(e):(a=e).size<2?void 0:"TXXX"===a.type?(r=1,r+=(s=Ko(a.data.subarray(1),!0)).length+1,r=Ko(a.data.subarray(r)),{key:a.type,info:s,data:r}):(s=Ko(a.data.subarray(1)),{key:a.type,info:"",data:s})}let Xr=10,Qr=10;function zd(e){let t=0;for(var i,r=[];xd(e,t);){for(var s=Dd(e,t+6),a=(e[t+5]>>6&1&&(t+=Xr),(t+=Xr)+s);t+Qr(e.audioId3="org.id3",e.dateRange="com.apple.quicktime.HLS",e.emsg="https://aomedia.org/emsg/ID3",e.misbklv="urn:misb:KLV:bin:1910.1",e))({});function Yd(e="",t=9e4){return{type:e,id:-1,pid:-1,inputTimeScale:t,sequenceNumber:-1,samples:[],dropped:0}}class wm{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(e,t,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(e){this.initPTS=e,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(e,t){return!1}appendFrame(e,t,i){}demux(e,t){this.cachedData&&(e=gl(this.cachedData,e),this.cachedData=null);let i=Od(e,0),r=i?i.length:0,s;var a,n,o=this._audioTrack,l=this._id3Track,h=i?Wd(i):void 0,d=e.length;for((null===this.basePTS||0===this.frameIndex&&G(h))&&(this.basePTS=Zr(h,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),i&&0G(e)?90*e:9e4*t+(i?9e4*i.baseTime/i.timescale:0),Jr=null,es=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],ts=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],is=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],rs=[0,1,1,4];function qd(e,t,i,r,s){var a;return!(i+24>t.length)&&(a=Xd(t,i))&&i+a.frameLength<=t.length?(r=r+s*(9e4*a.samplesPerFrame/a.sampleRate),s={unit:t.subarray(i,i+a.frameLength),pts:r,dts:r},e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(s),{sample:s,length:a.frameLength,missing:0}):void 0}function Xd(e,t){var i,r,s,a,n,o=e[t+1]>>3&3,l=e[t+1]>>1&3,h=e[t+2]>>4&15,d=e[t+2]>>2&3;if(1!=o&&0!=h&&15!=h&&3!=d)return n=e[t+2]>>1&1,i=e[t+3]>>6,r=3==o?3-l:3==l?3:4,r=1e3*es[14*r+h-1],h=3==o?0:2==o?1:2,h=ts[3*h+d],d=3==i?1:2,a=8*(o=is[o][l])*(s=rs[l]),o=Math.floor(o*r/h+n)*s,null===Jr&&(n=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),Jr=n?parseInt(n[1]):0),!!Jr&&Jr<=87&&2==l&&224e3<=r&&0==i&&(e[t+3]=128|e[t+3]),{sampleRate:h,channelCount:d,frameLength:o,samplesPerFrame:a}}function Qd(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function Zd(e,t){return t+1=s.length?void 0:!((n=Nd(s,a))<=o)&&((o=a+n)===s.length||Ud(s,o)))return i.log("ADTS sync word found !"),!0}return!1}canParse(e,t){return(t=t)+5<(e=e).length&&Md(e,t)&&Nd(e,t)<=e.length-t}appendFrame(e,t,i){$d(e,this.observer,t,i,e.manifestCodec);e=Vd(e,t,i,this.basePTS,this.frameIndex);if(e&&0===e.missing)return e}}let ss=(e,t)=>{let i=0,r=5;t+=r;for(var s=new Uint32Array(1),a=new Uint32Array(1),n=new Uint8Array(1);0>>24+l<>l,i=i?i<t.length)return-1;if(11!==t[i]||119!==t[i+1])return-1;var a=t[i+4]>>6;if(3<=a)return-1;var n=[48e3,44100,32e3][a],o=63&t[i+4],l=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*o+a];if(t.length>5;let d=0;(2==h||(1&h&&1!=h&&(d+=2),4&h))&&(d+=2);var c=(t[i+6]<<8|t[i+7])>>12-d&1,u=[2,1,2,3,3,4,4,5][h]+c,p=7&t[i+5],a=new Uint8Array([a<<6|t[i+5]>>3<<1|p>>2,(3&p)<<6|h<<3|c<<2|o>>4,o<<4&224]),p=r+s*(1536/n*9e4),h=t.subarray(i,i+l);return e.config=a,e.channelCount=u,e.samplerate=n,e.samples.push({unit:h,pts:p}),l}class _m extends wm{resetInitSegment(e,t,i,r){super.resetInitSegment(e,t,i,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:r,inputTimeScale:9e4,dropped:0}}static probe(t){if(t){var i=Od(t,0);let e=(null==i?void 0:i.length)||0;if(!(i&&11===t[e]&&119===t[e+1]&&void 0!==Wd(i)&&ss(t,e)<=16))for(var r=t.length;e{t=(e=>{var t=e[0];let i="",r="",s=0,a=0,n=0,o=0,l=0,h=0;if(0===t){for(;"\0"!==tn(e.subarray(h,h+1));)i+=tn(e.subarray(h,h+1)),h+=1;for(i+=tn(e.subarray(h,h+1)),h+=1;"\0"!==tn(e.subarray(h,h+1));)r+=tn(e.subarray(h,h+1)),h+=1;r+=tn(e.subarray(h,h+1)),h+=1,s=rn(e,12),a=rn(e,16),o=rn(e,20),l=rn(e,24),h=28}else if(1===t){h+=4,s=rn(e,h);var t=rn(e,h+=4),d=rn(e,h+=4);for(h+=4,n=2**32*t+d,mr(n)||(n=Number.MAX_SAFE_INTEGER,H.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=rn(e,h),h+=4,l=rn(e,h),h+=4;"\0"!==tn(e.subarray(h,h+1));)i+=tn(e.subarray(h,h+1)),h+=1;for(i+=tn(e.subarray(h,h+1)),h+=1;"\0"!==tn(e.subarray(h,h+1));)r+=tn(e.subarray(h,h+1)),h+=1;r+=tn(e.subarray(h,h+1)),h+=1}return t=e.subarray(h,e.byteLength),{schemeIdUri:i,value:r,timeScale:s,presentationTime:n,presentationTimeDelta:a,eventDuration:o,id:l,payload:t}})(t);if(as.test(t.schemeIdUri)){var i=tc(t,s);let e=4294967295===t.eventDuration?Number.POSITIVE_INFINITY:t.eventDuration/t.timeScale;e<=.001&&(e=Number.POSITIVE_INFINITY);var r=t.payload;a.samples.push({data:r,len:r.byteLength,dts:i,pts:i,type:_.emsg,duration:e})}else this.config.enableEmsgKLVMetadata&&t.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")&&(r=tc(t,s),a.samples.push({data:t.payload,len:t.payload.byteLength,dts:r,pts:r,type:_.misbklv,duration:Number.POSITIVE_INFINITY}))}),a}demuxSampleAes(e,t,i){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}}function tc(e,t){return G(e.presentationTime)?e.presentationTime/e.timeScale:t+e.presentationTimeDelta/e.timeScale}class Am{constructor(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new cm(t,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,kh)}decryptAacSample(t,i,r){let s=t[i].unit;var e;s.length<=16||(e=(e=s.subarray(16,s.length-s.length%16)).buffer.slice(e.byteOffset,e.byteOffset+e.length),this.decryptBuffer(e).then(e=>{e=new Uint8Array(e);s.set(e,16),this.decrypter.isSync()||this.decryptAacSamples(t,i+1,r)}).catch(r))}decryptAacSamples(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){var e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e);let r=0;for(let e=32;e{a.data=this.getAvcDecryptedUnit(n,e),this.decrypter.isSync()||this.decryptAvcSamples(t,i,r+1,s)}).catch(s)}decryptAvcSamples(e,t,i,r){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var a=s[i];if(!(a.data.length<=48||1!==a.type&&5!==a.type||(this.decryptAvcSample(e,t,i,r,a),this.decrypter.isSync())))return}}}}class Rm{constructor(){this.VideoSample=null}createVideoSample(e,t,i){return{key:e,frame:!1,pts:t,dts:i,units:[],length:0}}getLastNalUnit(e){let t,i=this.VideoSample,r;return null!=(t=i=i&&0!==i.units.length?i:e[e.length-1])&&t.units&&(e=i.units,r=e[e.length-1]),r}pushAccessUnit(e,t){if(e.units.length&&e.frame){if(void 0===e.pts){var i=t.samples,r=i.length;if(!r)return void t.dropped++;i=i[r-1];e.pts=i.pts,e.dts=i.dts}t.samples.push(e)}}parseNALu(e,t,i){var r=t.byteLength;let s=e.naluState||0;var a,n=s,o=[];let l=0,h=-1,d=0;for(-1===s&&(h=0,d=this.getNALuType(t,0),s=0,l=1);le||(e=(e-=this.bitsAvailable)-((t=e>>3)<<3),this.bytesAvailable-=t,this.loadWord()),this.word<<=e,this.bitsAvailable-=e}readBits(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(32>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){var e=this.skipLZ();return this.readBits(e+1)-1}readEG(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return 1===this.readBits(1)}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}}class Pm extends Rm{parsePES(n,i,o,e){var t=this.parseNALu(n,o.data,e);let l=this.VideoSample,h,d=!1;o.data=null,l&&t.length&&!n.audFound&&(this.pushAccessUnit(l,n),l=this.VideoSample=this.createVideoSample(!1,o.pts,o.dts)),t.forEach(t=>{switch(t.type){case 1:{let e=!1;h=!0;var r=t.data;d&&4{var t;switch(e.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:(h=h||(this.VideoSample=this.createVideoSample(!1,l.pts,l.dts))).frame=!0,d=!0;break;case 16:case 17:case 18:case 21:d=!0,c&&null!=(t=h)&&t.frame&&!h.key&&(this.pushAccessUnit(h,n),h=this.VideoSample=null),(h=h||(this.VideoSample=this.createVideoSample(!0,l.pts,l.dts))).key=!0,h.frame=!0;break;case 19:case 20:d=!0,null!=(t=h)&&t.frame&&!h.key&&(this.pushAccessUnit(h,n),h=this.VideoSample=null),(h=h||(this.VideoSample=this.createVideoSample(!0,l.pts,l.dts))).key=!0,h.frame=!0;break;case 39:d=!0,yl(e.data,2,l.pts,o.samples);break;case 32:d=!0,n.vps||("object"!=typeof n.params&&(n.params={}),n.params=Qa(n.params,this.readVPS(e.data)),this.initVPS=e.data),n.vps=[e.data];break;case 33:if(d=!0,c=!0,void 0===n.vps||n.vps[0]===this.initVPS||void 0===n.sps||this.matchSPS(n.sps[0],e.data)||(this.initVPS=n.vps[0],n.sps=n.pps=void 0),!n.sps){var i,r=this.readSPS(e.data);for(i in n.width=r.width,n.height=r.height,n.pixelRatio=r.pixelRatio,n.codec=r.codecString,n.sps=[],"object"!=typeof n.params&&(n.params={}),r.params)n.params[i]=r.params[i]}this.pushParameterSet(n.sps,e.data,n.vps),(h=h||(this.VideoSample=this.createVideoSample(!0,l.pts,l.dts))).key=!0;break;case 34:if(d=!0,"object"==typeof n.params){if(!n.pps){n.pps=[];var s,a=this.readPPS(e.data);for(s in a)n.params[s]=a[s]}this.pushParameterSet(n.pps,e.data,n.vps)}break;case 35:d=!0,n.audFound=!0,null!=(t=h)&&t.frame&&(this.pushAccessUnit(h,n),h=null),h=h||(this.VideoSample=this.createVideoSample(!1,l.pts,l.dts));break;default:d=!1}h&&d&&h.units.push(e)}),e&&h&&(this.pushAccessUnit(h,n),this.VideoSample=null)}pushParameterSet(e,t,i){(i&&i[0]===this.initVPS||!i&&!e.length)&&e.push(t)}getNALuType(e,t){return(126&e[t])>>>1}ebsp2rbsp(t){var i=new Uint8Array(t.byteLength);let r=0;for(let e=0;e>e&1)<<31-e)>>>0;let M=O.toString(16);return{codecString:`hvc1.${T}${s}.${M=1===s&&"2"===M?"6":M}.${t?"H":"L"}${h}.B0`,params:{general_tier_flag:t,general_profile_idc:s,general_profile_space:e,general_profile_compatibility_flags:[a,n,o,l],general_constraint_indicator_flags:[F,N,U,$,B,V],general_level_idc:h,bit_depth:E+8,bit_depth_luma_minus8:E,bit_depth_chroma_minus8:j,min_spatial_segmentation_idc:A,chroma_format_idc:u,frame_rate:{fixed:P,fps:x/C}},width:Y,height:q,pixelRatio:[R,I]}}readPPS(e){var e=new Im(this.ebsp2rbsp(e)),t=(e.readUByte(),e.readUByte(),e.skipUEG(),e.skipUEG(),e.skipBits(2),e.skipBits(3),e.skipBits(2),e.skipUEG(),e.skipUEG(),e.skipEG(),e.skipBits(2),e.readBoolean()),t=(t&&e.skipUEG(),e.skipEG(),e.skipEG(),e.skipBits(4),e.readBoolean()),e=e.readBoolean();let i=1;return e&&t?i=0:e?i=3:t&&(i=2),{parallelismType:i}}matchSPS(e,t){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,t).substr(3)}}class xm{constructor(e,t,i,r){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=e,this.config=t,this.typeSupported=i,this.logger=r,this.videoParser=null}static probe(e,t){e=xm.syncOffset(e);return 0n))return i}o++}return-1}static createTrack(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:Sr[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?t:void 0}}resetInitSegment(e,t,i,r){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=xm.createTrack("video"),this._videoTrack.duration=r,this._audioTrack=xm.createTrack("audio",r),this._id3Track=xm.createTrack("id3"),this._txtTrack=xm.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=t,this.videoCodec=i}resetTimeStamp(){}resetContiguity(){var{_audioTrack:e,_videoTrack:t,_id3Track:i}=this;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(i,e,r=!1,t=!1){r||(this.sampleAes=null);let s;var a=this._videoTrack,n=this._audioTrack,o=this._id3Track,l=this._txtTrack;let h=a.pid,d=a.pesData,c=n.pid,u=o.pid,p=n.pesData,f=o.pesData,g=null,m=this.pmtParsed,v=this._pmtId,y=i.length;if(this.remainderData&&(i=gl(this.remainderData,i),y=i.length,this.remainderData=null),y<188&&!t)return this.remainderData=i,{audioTrack:n,videoTrack:a,id3Track:o,textTrack:l};var b,E=Math.max(0,xm.syncOffset(i));(y-=(y-E)%188)>4){if((e=t+5+i[t+4])===t+188)continue}else e=t+4;switch(S){case h:w&&(d&&(s=ac(d,this.logger))&&(this.readyVideoParser(a.segmentCodec),null!==this.videoParser)&&this.videoParser.parsePES(a,l,s,!1),d={data:[],size:0}),d&&(d.data.push(i.subarray(e,t+188)),d.size+=t+188-e);break;case c:if(w){if(p&&(s=ac(p,this.logger)))switch(n.segmentCodec){case"aac":this.parseAACPES(n,s);break;case"mp3":this.parseMPEGPES(n,s);break;case"ac3":this.parseAC3PES(n,s)}p={data:[],size:0}}p&&(p.data.push(i.subarray(e,t+188)),p.size+=t+188-e);break;case u:w&&(f&&(s=ac(f,this.logger))&&this.parseID3PES(o,s),f={data:[],size:0}),f&&(f.data.push(i.subarray(e,t+188)),f.size+=t+188-e);break;case 0:w&&(e+=i[e]+1),v=this._pmtId=(k=i,b=e,(31&k[b+10])<<8|k[b+11]);break;case v:w&&(e+=i[e]+1);var k=((i,r,s,e,t,a)=>{var n={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},o=(15&i[r+1])<<8|i[r+2],l=r+3+o-4;for(r+=12+(o=(15&i[r+10])<<8|i[r+11]);r{let{audioTrack:t,videoTrack:i}=r;t.samples&&"aac"===t.segmentCodec?s.decryptAacSamples(t.samples,0,()=>{i.samples?s.decryptAvcSamples(i.samples,0,0,()=>{e(r)}):e(r)}):i.samples&&s.decryptAvcSamples(i.samples,0,0,()=>{e(r)})})}destroy(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(e,t){let i=0;var r,s,a=this.aacOverFlow;let n=t.data;a&&(this.aacOverFlow=null,l=a.missing,d=a.sample.unit.byteLength,-1===l?n=gl(a.sample.unit,n):(d=d-l,a.sample.unit.set(n.subarray(0,l),d),e.samples.push(a.sample),i=a.missing));let o;for(o=i,r=n.length;oe.size-6)return null;var h=s[7];192&h&&(n=536870912*(14&s[9])+4194304*(255&s[10])+16384*(254&s[11])+128*(255&s[12])+(254&s[13])/2,64&h?(o=536870912*(14&s[14])+4194304*(255&s[15])+16384*(254&s[16])+128*(255&s[17])+(254&s[18])/2,54e5e){i-=e;continue}s=s.subarray(i),e-=i,i=0}d.set(s,r),r+=e}return a&&(a-=h+3),{data:d,pts:n,dts:o,len:a}}}class Dm{static getSilentFrame(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}let ns=Math.pow(2,32)-1;class Tn{static init(){Tn.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let e;for(e in Tn.types)Tn.types.hasOwnProperty(e)&&(Tn.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t=(Tn.HDLR_TYPES={video:t,audio:i},new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])),i=new Uint8Array([0,0,0,0,0,0,0,0]),i=(Tn.STTS=Tn.STSC=Tn.STCO=i,Tn.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),Tn.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),Tn.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),Tn.STSD=new Uint8Array([0,0,0,0,0,0,0,1]),new Uint8Array([105,115,111,109])),r=new Uint8Array([97,118,99,49]),s=new Uint8Array([0,0,0,1]);Tn.FTYP=Tn.box(Tn.types.ftyp,i,s,i,r),Tn.DINF=Tn.box(Tn.types.dinf,Tn.box(Tn.types.dref,t))}static box(e,...t){let i=8,r=t.length;for(var s=r;r--;)i+=t[r].byteLength;var a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(e,4),r=0,i=8;r>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,85,196,0,0]))}static mdia(e){return Tn.box(Tn.types.mdia,Tn.mdhd(e.timescale||0,e.duration||0),Tn.hdlr(e.type),Tn.minf(e))}static mfhd(e){return Tn.box(Tn.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))}static minf(e){return"audio"===e.type?Tn.box(Tn.types.minf,Tn.box(Tn.types.smhd,Tn.SMHD),Tn.DINF,Tn.stbl(e)):Tn.box(Tn.types.minf,Tn.box(Tn.types.vmhd,Tn.VMHD),Tn.DINF,Tn.stbl(e))}static moof(e,t,i){return Tn.box(Tn.types.moof,Tn.mfhd(e),Tn.traf(i,t))}static moov(e){let t=e.length;for(var i=[];t--;)i[t]=Tn.trak(e[t]);return Tn.box.apply(null,[Tn.types.moov,Tn.mvhd(e[0].timescale||0,e[0].duration||0)].concat(i).concat(Tn.mvex(e)))}static mvex(e){let t=e.length;for(var i=[];t--;)i[t]=Tn.trex(e[t]);return Tn.box.apply(null,[Tn.types.mvex,...i])}static mvhd(e,t){t*=e;var i=Math.floor(t/(1+ns)),t=Math.floor(t%(1+ns)),e=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return Tn.box(Tn.types.mvhd,e)}static sdtp(e){var t,i=e.samples||[],r=new Uint8Array(4+i.length);let s;for(s=0;s>>8&255),t.push(255&a),t=t.concat(Array.prototype.slice.call(s));for(r=0;r>>8&255),i.push(255&a),i=i.concat(Array.prototype.slice.call(s));var n=Tn.box(Tn.types.avcC,new Uint8Array([1,t[3],t[4],t[5],255,224|e.sps.length].concat(t).concat([e.pps.length]).concat(i))),o=e.width,l=e.height,h=e.pixelRatio[0],d=e.pixelRatio[1];return Tn.box(Tn.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o>>8&255,255&o,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),n,Tn.box(Tn.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),Tn.box(Tn.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,d>>24,d>>16&255,d>>8&255,255&d])))}static esds(e){e=e.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...e,6,1,2])}static audioStsd(e){var t=e.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount||0,0,16,0,0,0,0,t>>8&255,255&t,0,0])}static mp4a(e){return Tn.box(Tn.types.mp4a,Tn.audioStsd(e),Tn.box(Tn.types.esds,Tn.esds(e)))}static mp3(e){return Tn.box(Tn.types[".mp3"],Tn.audioStsd(e))}static ac3(e){return Tn.box(Tn.types["ac-3"],Tn.audioStsd(e),Tn.box(Tn.types.dac3,e.config))}static stsd(e){var t=e.segmentCodec;if("audio"===e.type){if("aac"===t)return Tn.box(Tn.types.stsd,Tn.STSD,Tn.mp4a(e));if("ac3"===t&&e.config)return Tn.box(Tn.types.stsd,Tn.STSD,Tn.ac3(e));if("mp3"===t&&"mp3"===e.codec)return Tn.box(Tn.types.stsd,Tn.STSD,Tn.mp3(e))}else{if(!e.pps||!e.sps)throw new Error("video track missing pps or sps");if("avc"===t)return Tn.box(Tn.types.stsd,Tn.STSD,Tn.avc1(e));if("hevc"===t&&e.vps)return Tn.box(Tn.types.stsd,Tn.STSD,Tn.hvc1(e))}throw new Error(`unsupported ${e.type} segment codec (${t}/${e.codec})`)}static tkhd(e){var t=e.id,i=(e.duration||0)*(e.timescale||0),r=e.width||0,e=e.height||0,s=Math.floor(i/(1+ns)),i=Math.floor(i%(1+ns));return Tn.box(Tn.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,e>>8&255,255&e,0,0]))}static traf(e,t){var i=Tn.sdtp(e),r=e.id,s=Math.floor(t/(1+ns)),t=Math.floor(t%(1+ns));return Tn.box(Tn.types.traf,Tn.box(Tn.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),Tn.box(Tn.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,t>>24,t>>16&255,t>>8&255,255&t])),Tn.trun(e,i.length+16+20+8+16+8+8),i)}static trak(e){return e.duration=e.duration||4294967295,Tn.box(Tn.types.trak,Tn.tkhd(e),Tn.mdia(e))}static trex(e){e=e.id;return Tn.box(Tn.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,t){var i,r,s=e.samples||[],a=s.length,n=12+16*a,o=new Uint8Array(n);let l;for(o.set(["video"===e.type?1:0,0,15,1,a>>>24&255,a>>>16&255,a>>>8&255,255&a,(t+=8+n)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),l=0;l>>24&255,r>>>16&255,r>>>8&255,255&r,(r=i.size)>>>24&255,r>>>16&255,r>>>8&255,255&r,(r=i.flags).isLeading<<2|r.dependsOn,r.isDependedOn<<6|r.hasRedundancy<<4|r.paddingValue<<1|r.isNonSync,61440&r.degradPrio,15&r.degradPrio,(r=i.cts)>>>24&255,r>>>16&255,r>>>8&255,255&r],12+16*l);return Tn.box(Tn.types.trun,o)}static initSegment(e){Tn.types||Tn.init();e=Tn.moov(e);return gl(Tn.FTYP,e)}static hvc1(e){var t=e.params,i=[e.vps,e.sps,e.pps],t=new Uint8Array([1,t.general_profile_space<<6|(t.general_tier_flag?32:0)|t.general_profile_idc,t.general_profile_compatibility_flags[0],t.general_profile_compatibility_flags[1],t.general_profile_compatibility_flags[2],t.general_profile_compatibility_flags[3],t.general_constraint_indicator_flags[0],t.general_constraint_indicator_flags[1],t.general_constraint_indicator_flags[2],t.general_constraint_indicator_flags[3],t.general_constraint_indicator_flags[4],t.general_constraint_indicator_flags[5],t.general_level_idc,240|t.min_spatial_segmentation_idc>>8,255&t.min_spatial_segmentation_idc,252|t.parallelismType,252|t.chroma_format_idc,248|t.bit_depth_luma_minus8,248|t.bit_depth_chroma_minus8,0,parseInt(t.frame_rate.fps),3|t.temporal_id_nested<<2|t.num_temporal_layers<<3|(t.frame_rate.fixed?64:0),i.length]);let r=t.length;for(let t=0;t>8,255&i[t][e].length]),r),r+=2,s.set(i[t][e],r),r+=i[t][e].length}var t=Tn.box(Tn.types.hvcC,s),n=e.width,o=e.height,l=e.pixelRatio[0],e=e.pixelRatio[1];return Tn.box(Tn.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,n>>8&255,255&n,o>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),t,Tn.box(Tn.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),Tn.box(Tn.types.pasp,new Uint8Array([l>>24,l>>16&255,l>>8&255,255&l,e>>24,e>>16&255,e>>8&255,255&e])))}}Tn.types=void 0,Tn.HDLR_TYPES=void 0,Tn.STTS=void 0,Tn.STSC=void 0,Tn.STCO=void 0,Tn.STSZ=void 0,Tn.VMHD=void 0,Tn.SMHD=void 0,Tn.STSD=void 0,Tn.FTYP=void 0,Tn.DINF=void 0;let os=9e4;function nc(e,t,i=1,r=!1){e=e*t*i;return r?Math.round(e):e}function oc(e,t=!1){return nc(e,1e3,1/os,t)}function lc(e){var{baseTime:e,timescale:t,trackId:i}=e;return e/t+` (${e}/${t}) trackId: `+i}let ls=null,hs=null;function hc(e,t,i,r){return{duration:t,size:i,cts:r,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:e?2:1,isNonSync:e?0:1}}}class Om extends Zg{constructor(e,t,i,r){super("mp4-remuxer",r),this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=!1,null===ls&&(r=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),ls=r?parseInt(r[1]):0),null===hs&&(e=navigator.userAgent.match(/Safari\/(\d+)/i),hs=e?parseInt(e[1]):0)}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(e){var t=this._initPTS;t&&e&&e.trackId===t.trackId&&e.baseTime===t.baseTime&&e.timescale===t.timescale||this.log(`Reset initPTS: ${t&&lc(t)} > `+(e&&lc(e))),this._initPTS=this._initDTS=e}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(e){let s=!1,a=e[0].pts;e=e.reduce((e,t)=>{let i=t.pts,r=i-e;return r<-4294967296&&(s=!0,i=dc(i,a),r=i-e),0{for(let e=0;e=a[0].pts||ls)){p=v;var w=a[0].pts-E;if(T)a[0].dts=p,a[0].pts=w;else{let t=!0;for(let e=0;ew&&t);e++){var S,k,F=a[e].pts;a[e].dts-=E,a[e].pts-=E,e0<=e.pts)).length&&this.warn(`Removed ${p.length-h} of ${h} samples (initPTS ${m} / ${a})`),!p.length)return;g=0===r?0:t&&!u?Math.max(0,v-m):p[0].pts-m}if("aac"===s.segmentCodec){var y=this.config.maxAudioFramesDrift;for(let i=0,r=g+m;ie.pts-t.pts);var e=t.samples;return t.samples=[],{samples:e}}}class Mm extends Zg{constructor(e,t,i,r){super("passthrough-remuxer",r),this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(e){this.lastEndTime=null;var t=this.initPTS;t&&e&&t.baseTime===e.baseTime&&t.timescale===e.timescale||(this.initPTS=e)}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(e,t,i,r){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(e,r),this.emitInitSegment=!0}generateInitSegment(e,t){let{audioCodec:i,videoCodec:r}=this;if(null!=e&&e.byteLength){var{audio:s,video:a}=this.initData=ol(e);if(t){var n=e;if(n&&t){let r=t.keyId;r&&t.isCommonEncryption&&ul(n,(e,t)=>{var i=e.subarray(8,24);i.some(e=>0!==e)||(H.log(`[eme] Patching keyId in 'enc${t?"a":"v"}>sinf>>tenc' box: ${Ja(i)} -> `+Ja(r)),e.set(r,8))})}}else{t=s||a;null!=t&&t.encrypted&&this.warn(`Init segment with encrypted track with has no key ("${t.codec}")!`)}s&&(i=fc(s,tl,this)),a&&(r=fc(a,il,this));n={};s&&a?n.audiovideo={container:"video/mp4",codec:i+","+r,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:s?n.audio={container:"audio/mp4",codec:i,encrypted:s.encrypted,initSegment:e,id:"audio"}:a?n.video={container:"video/mp4",codec:r,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=n}else this.initTracks=void 0,this.initData=void 0}remux(e,s,a,n,o,l){let t,i,{initPTS:h,lastEndTime:r}=this;var d={audio:void 0,video:void 0,text:n,id3:a,initSegment:void 0},s=(G(r)||(this.lastEndTime=o||0),s.samples);if(s.length){var c={initPTS:void 0,timescale:void 0,trackId:void 0};let r=this.initData;if(null!=(t=r)&&t.length||(this.generateInitSegment(s),r=this.initData),null!=(i=r)&&i.length){this.emitInitSegment&&(c.tracks=this.initTracks,this.emitInitSegment=!1);var u=fl(s,r,this),p=r.audio?u[r.audio.id]:null,u=r.video?u[r.video.id]:null,f=pc(u,1/0),g=pc(p,1/0),m=pc(u,0,!0),v=pc(p,0,!0);let e=o,t=0;var y,b=p&&(!u||!h&&gnull===e||(r=Math.max(r,1),t-=e.baseTime/e.timescale,Math.abs(t-i)>r))(h,e,o,t)&&T===h.timescale||(h&&this.warn(`Timestamps at playlist time: ${l?"":"~"}${o} ${E/T} != initPTS: ${h.baseTime/h.timescale} (${h.baseTime}/${h.timescale}) trackId: `+h.trackId),this.log(`Found initPTS at playlist time: ${o} offset: ${e-o} (${E}/${T}) trackId: `+y),h=null,c.initPTS=E,c.timescale=T,c.trackId=y)):this.warn("No audio or video samples found for initPTS at playlist time: "+o),h?(c.initPTS=h.baseTime,c.timescale=h.timescale,c.trackId=h.trackId):(c.timescale&&void 0!==c.trackId&&void 0!==c.initPTS||(this.warn("Could not set initPTS"),c.initPTS=e,c.timescale=1,c.trackId=-1),this.initPTS=h={baseTime:c.initPTS,timescale:c.timescale,trackId:c.trackId}),e-h.baseTime/h.timescale),b=p+t,v=(0{let i=null;return i=0{e=this.push(e,null,i);return this.decryptionPromise=null,e}),this.decryptionPromise;{let e=m.softwareDecrypt(a,g.key.buffer,g.iv.buffer,v);if(-1this.flush(t));let a=[];var s=r.timeOffset,{demuxer:i,remuxer:r}=(i&&(r=i.flush())&&a.push(this.push(r.buffer,null,t)),this);return i&&r?gc(r=i.flush(s))?(this.asyncResult=!0,r.then(e=>(this.flushRemux(a,e,t),a))):(this.flushRemux(a,r,t),this.asyncResult?Promise.resolve(a):a):(e.executeEnd=ds(),i=[us(t)],this.asyncResult?Promise.resolve(i):i)}flushRemux(e,t,i){var{audioTrack:t,videoTrack:r,id3Track:s,textTrack:a}=t,{accurateTimeOffset:n,timeOffset:o}=this.currentTransmuxState,t=(this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${i.sn}${-1({remuxResult:this.remuxer.remux(e.audioTrack,e.videoTrack,e.id3Track,e.textTrack,i,r,!1,this.id),chunkMeta:s}))}configureTransmuxer(i){var r,{config:e,observer:t,typeSupported:s}=this;let a;for(let e=0,t=cs.length;e({remuxResult:{},chunkMeta:e});function gc(e){return"then"in e&&e.then instanceof Function}class Nm{constructor(e,t,i,r,s){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=t,this.initSegmentData=i,this.duration=r,this.defaultInitPts=s||null}}class Um{constructor(e,t,i,r,s,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=t,this.accurateTimeOffset=i,this.trackSwitch=r,this.timeOffset=s,this.initSegmentChange=a}}let ps=0;class $m{constructor(t,i,r,s){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=ps++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=e=>{var t=e.data,i=this.hls;if(i&&null!=t&&t.event&&t.instanceNo===this.instanceNo)switch(t.event){case"init":var r=null==(r=this.workerContext)?void 0:r.objectURL;r&&self.URL.revokeObjectURL(r);break;case"transmuxComplete":this.handleTransmuxComplete(t.data);break;case"flush":this.onFlush(t.data);break;case"workerLog":i.logger[t.data.logType]&&i.logger[t.data.logType](t.data.message);break;default:t.data=t.data||{},t.data.frag=this.frag,t.data.part=this.part,t.data.id=this.id,i.trigger(t.event,t.data)}},this.onWorkerError=e=>{this.hls&&(e=new Error(e.message+` (${e.filename}:${e.lineno})`),this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:e}))};var e,a,n,o=t.config,r=(this.hls=t,this.id=i,this.useWorker=!!o.enableWorker,this.onTransmuxComplete=r,this.onFlush=s,(e,t)=>{(t=t||{}).frag=this.frag||void 0,e===X.ERROR&&(t.parent=this.id,t.part=this.part,this.error=t.error),this.hls.trigger(e,t)}),s=(this.observer=new Id,this.observer.on(X.FRAG_DECRYPTED,r),this.observer.on(X.ERROR,r),Cl(o.preferManagedMediaSource));if(this.useWorker&&"undefined"!=typeof Worker){r=this.hls.logger;if(o.workerPath||"function"==typeof __HLS_WORKER_BUNDLE__){try{o.workerPath?(r.log(`loading Web Worker ${o.workerPath} for "${i}"`),this.workerContext=(a=o.workerPath,(n=qr[a])?(n.clientCount++,n):(n=new self.URL(a,self.location.href).href,n={worker:new self.Worker(n),scriptURL:n,clientCount:1},qr[a]=n))):(r.log(`injecting Web Worker for "${i}"`),this.workerContext=(e=qr[Yr])?(e.clientCount++,e):(e=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),e=self.URL.createObjectURL(e),e={worker:new self.Worker(e),objectURL:e,clientCount:1},qr[Yr]=e));var l=this.workerContext.worker;l.addEventListener("message",this.onWorkerMessage),l.addEventListener("error",this.onWorkerError),l.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:s,id:i,config:B(o)})}catch(e){r.warn(`Error setting up "${i}" Web Worker, fallback to inline`,e),this.terminateWorker(),this.error=null,this.transmuxer=new Fm(this.observer,s,o,"",i,t.logger)}return}}this.transmuxer=new Fm(this.observer,s,o,"",i,t.logger)}reset(){var e,t,i;this.frag=null,this.part=null,this.workerContext&&(e=this.instanceNo,this.instanceNo=ps++,i=Cl((t=this.hls.config).preferManagedMediaSource),this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupported:i,id:this.id,config:B(t)}))}terminateWorker(){var e,t,i;this.workerContext&&(e=this.workerContext.worker,this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),e=this.hls.config.workerPath,i=qr[e||Yr])&&1==i.clientCount--&&({worker:i,objectURL:t}=i,delete qr[e||Yr],t&&self.URL.revokeObjectURL(t),i.terminate())}destroy(){this.workerContext?(this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null):(e=this.transmuxer)&&(e.destroy(),this.transmuxer=null);var e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null}push(e,t,i,r,s,a,n,o,l,h){l.transmuxing.start=self.performance.now();var{instanceNo:d,transmuxer:c}=this,u=(a||s).start,p=s.decryptdata,f=this.frag,g=!(f&&s.cc===f.cc),m=!(f&&l.level===f.level),v=f?l.sn-f.sn:-1,y=this.part?l.part-this.part.index:-1,b=0==v&&1{this.handleTransmuxComplete(e)}).catch(e=>{this.transmuxerError(e,l,"transmuxer-interface push error")}):this.handleTransmuxComplete(y))}flush(t){t.transmuxing.start=self.performance.now();var{instanceNo:e,transmuxer:i}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:e,cmd:"flush",chunkMeta:t}):i&&(gc(e=i.flush(t))?e.then(e=>{this.handleFlushResult(e,t)}).catch(e=>{this.transmuxerError(e,t,"transmuxer-interface flush error")}):this.handleFlushResult(e,t))}transmuxerError(e,t,i){this.hls&&(this.error=e,this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.FRAG_PARSING_ERROR,chunkMeta:t,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:i}))}handleFlushResult(e,t){e.forEach(e=>{this.handleTransmuxComplete(e)}),this.onFlush(t)}configureTransmuxer(e){var{instanceNo:t,transmuxer:i}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:t,cmd:"configure",config:e}):i&&i.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}}class Bm extends Em{constructor(e,t,i){super(e,t,i,"audio-stream-controller",Xa),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();var e=this.hls;e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(X.BUFFER_RESET,this.onBufferReset,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){var e=this.hls;e&&(super.unregisterListeners(),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(X.BUFFER_RESET,this.onBufferReset,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this))}onInitPtsFound(e,{frag:t,id:i,initPTS:r,timescale:s,trackId:a}){var n;i===qa&&(i=t.cc,n=this.fragCurrent,this.initPTS[i]={baseTime:r,timescale:s,trackId:a},this.log(`InitPTS for cc: ${i} found from main: ${r/s} (${r}/${s}) trackId: `+a),this.mainAnchor=t,this.state===k.WAITING_INIT_PTS?(!(r=this.waitingData)&&!this.loadingParts||r&&r.frag.cc!==i)&&this.syncWithAnchor(t,null==r?void 0:r.frag):!this.hls.hasEnoughToStart&&n&&n.cc!==i?(n.abortRequests(),this.syncWithAnchor(t,n)):this.state===k.IDLE&&this.tick())}getLoadPosition(){return!this.startFragRequested&&0<=this.nextLoadPosition?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(e,t){var i=(null==(i=this.mainFragLoading)?void 0:i.frag)||null;t&&(null==i?void 0:i.cc)===t.cc||(t=(i||e).cc,(i=Jl(this.getLevelDetails(),t,this.getLoadPosition()))&&(this.log(`Syncing with main frag at ${i.start} cc `+i.cc),this.startFragRequested=!1,this.nextLoadPosition=i.start,this.resetLoadingState(),this.state===k.IDLE)&&this.doTickIdle())}startLoad(e,t){var i;this.levels?(i=this.lastCurrentTime,this.stopLoad(),this.setInterval(100),0o||s.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),r.currentTime=o+.05),!(e<=t&&!this.switchingTrack&&he.end&&(r=this.fragmentTracker.getFragAtPos(h,qa))&&r.end>e.end&&(e=r,this.mainFragLoading={frag:r,targetBufferTime:null});o=t.start>e.end;if(o)return}this.loadFragment(t,a,h)}}else this.bufferFlushed=!0}}}}}onMediaDetaching(e,t){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(e,t)}onAudioTracksUpdated(e,{audioTracks:t}){this.resetTransmuxer(),this.levels=t.map(e=>new sm(e))}onAudioTrackSwitching(e,t){var i=!!t.url,r=(this.trackId=t.id,this).fragCurrent;r&&(r.abortRequests(),this.removeUnbufferedFrags(r.start)),this.resetLoadingState(),i?(this.switchingTrack=t,this.flushAudioIfNeeded(t),this.state!==k.STOPPED&&(this.setInterval(100),this.state=k.IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=t,this.clearInterval())}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(e,t){this.mainDetails=t.details;t=this.cachedTrackLoadedData;t&&(this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(X.AUDIO_TRACK_LOADED,t))}onAudioTrackLoaded(e,t){var i=this.levels,{details:r,id:s,groupId:a,track:n}=t;if(i){var o=this.mainDetails;if(!o||r.endCC>o.endCC||o.expired)this.cachedTrackLoadedData=t,this.state!==k.STOPPED&&(this.state=k.WAITING_TRACK);else{this.cachedTrackLoadedData=null,this.log(`Audio track ${s} "${n.name}" of "${a}" loaded [${r.startSN},${r.endSN}]${r.lastPartSn?`[part-${r.lastPartSn}-${r.lastPartIndex}]`:""},duration:`+r.totalduration);var l,i=i[s];let e=0;if(r.live||null!=(l=i.details)&&l.live){if(this.checkLiveUpdate(r),r.deltaUpdateFailed)return;i.details&&(e=this.alignPlaylists(r,i.details,null==(l=this.levelLastLoaded)?void 0:l.details)),r.alignedSliding||(Ed(r,o),r.alignedSliding||Td(r,o),e=r.fragmentStart)}i.details=r,this.levelLastLoaded=i,this.startFragRequested||this.setStartPosition(o,e),this.hls.trigger(X.AUDIO_TRACK_UPDATED,{details:r,id:s,groupId:t.groupId}),this.state!==k.WAITING_TRACK||this.waitForCdnTuneIn(r)||(this.state=k.IDLE),this.tick()}}else this.warn(`Audio tracks reset while loading track ${s} "${n.name}" of "${a}"`)}_handleFragmentLoadProgress(t){var i=t.frag,{part:t,payload:r}=t,{config:s,trackId:a,levels:n}=this;if(n){n=n[a];if(n){var o=n.details;if(o){s=s.defaultAudioCodec||n.audioCodec||"mp4a.40.2";let e=this.transmuxer;e=e||(this.transmuxer=new $m(this.hls,Xa,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));var l,h,n=this.initPTS[i.cc],d=null==(d=i.initSegment)?void 0:d.data;void 0!==n?(h=-1!==(l=t?t.index:-1),l=new gm(i.level,i.sn,i.stats.chunkCount,r.byteLength,l,h),e.push(r,d,s,"",i,t,o.totalduration,!1,l,n)):(this.log(`Unknown video PTS for cc ${i.cc}, waiting for video PTS before demuxing audio frag ${i.sn} of [${o.startSN} ,${o.endSN}],track `+a),h=(this.waitingData=this.waitingData||{frag:i,part:t,cache:new Tm,complete:!1}).cache,h.push(new Uint8Array(r)),this.state!==k.STOPPED&&(this.state=k.WAITING_INIT_PTS))}else this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(i.start)}else this.warn("Audio track is undefined on fragment load progress")}else this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`)}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(e,t){this.bufferFlushed=this.flushing=!1;t=t.tracks.audio;t&&(this.mediaBuffer=t.buffer||null)}onFragLoading(e,t){!this.audioOnly&&t.frag.type===qa&&en(t.frag)&&(this.mainFragLoading=t,this.state===k.IDLE)&&this.tick()}onFragBuffered(e,t){var i,{frag:t,part:r}=t;t.type!==Xa?this.audioOnly||t.type!==qa||t.elementaryStreams.video||t.elementaryStreams.audiovideo||(this.audioOnly=!0,this.mainFragLoading=null):this.fragContextChanged(t)?this.warn(`Fragment ${t.sn}${r?" p: "+r.index:""} of level ${t.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: `+(this.switchingTrack?this.switchingTrack.name:"false")):(en(t)&&(this.fragPrevious=t,i=this.switchingTrack)&&(this.bufferedTrack=i,this.switchingTrack=null,this.hls.trigger(X.AUDIO_TRACK_SWITCHED,Za({},i))),this.fragBufferedComplete(t,r),this.media&&this.tick())}onError(e,t){var i;if(t.fatal)this.state=k.ERROR;else switch(t.details){case q.FRAG_GAP:case q.FRAG_PARSING_ERROR:case q.FRAG_DECRYPT_ERROR:case q.FRAG_LOAD_ERROR:case q.FRAG_LOAD_TIMEOUT:case q.KEY_LOAD_ERROR:case q.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Xa,t);break;case q.AUDIO_TRACK_LOAD_ERROR:case q.AUDIO_TRACK_LOAD_TIMEOUT:case q.LEVEL_PARSING_ERROR:t.levelRetry||this.state!==k.WAITING_TRACK||(null==(i=t.context)?void 0:i.type)!==No||(this.state=k.IDLE);break;case q.BUFFER_ADD_CODEC_ERROR:case q.BUFFER_APPEND_ERROR:"audio"!==t.parent||this.reduceLengthAndFlushBuffer(t)||this.resetLoadingState();break;case q.BUFFER_FULL_ERROR:"audio"===t.parent&&this.reduceLengthAndFlushBuffer(t)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case q.INTERNAL_EXCEPTION:this.recoverWorkerError(t)}}onBufferFlushing(e,{type:t}){t!==il&&(this.flushing=!0)}onBufferFlushed(e,{type:t}){var i;t!==il&&(this.flushing=!1,this.bufferFlushed=!0,this.state===k.ENDED&&(this.state=k.IDLE),i=this.mediaBuffer||this.media)&&(this.afterBufferFlushed(i,t,Xa),this.tick())}_handleTransmuxComplete(e){var t=this.hls,{remuxResult:e,chunkMeta:i}=e,r=this.getCurrentContext(i);if(r){var s,{frag:r,part:a,level:n}=r,o=n.details,{audio:e,text:l,id3:h,initSegment:d}=e;if(this.fragContextChanged(r)||!o)this.fragmentTracker.removeFragment(r);else{if(this.state=k.PARSING,this.switchingTrack&&e&&this.completeAudioSwitch(this.switchingTrack),null!=d&&d.tracks){var c=r.initSegment||r;if(this.unhandledEncryptionError(d,r))return;this._bufferInitSegment(n,d.tracks,c,i),t.trigger(X.FRAG_PARSING_INIT_SEGMENT,{frag:c,id:"audio",tracks:d.tracks})}e&&({startPTS:n,endPTS:c,startDTS:d,endDTS:s}=e,a&&(a.elementaryStreams[tl]={startPTS:n,endPTS:c,startDTS:d,endDTS:s}),r.setElementaryStreamInfo(tl,n,c,d,s),this.bufferFragmentData(e,r,a,i)),null!=h&&null!=(n=h.samples)&&n.length&&(c=Qa({id:"audio",frag:r,details:o},h),t.trigger(X.FRAG_PARSING_METADATA,c)),l&&(d=Qa({id:"audio",frag:r,details:o},l),t.trigger(X.FRAG_PARSING_USERDATA,d))}}else this.resetWhenMissingContext(i)}_bufferInitSegment(e,t,i,r){var s;this.state===k.PARSING&&(t.video&&delete t.video,t.audiovideo&&delete t.audiovideo,t.audio)&&((s=t.audio).id=Xa,e=e.audioCodec,this.log(`Init audio buffer, container:${s.container}, codecs[level/parsed]=[${e}/${s.codec}]`),e&&1===e.split(",").length&&(s.levelCodec=e),this.hls.trigger(X.BUFFER_CODECS,t),null!=(e=s.initSegment)&&e.byteLength&&(t={type:"audio",frag:i,part:null,chunkMeta:r,parent:i.type,data:e},this.hls.trigger(X.BUFFER_APPENDING,t)),this.tickImmediate())}loadFragment(e,t,i){var r=this.fragmentTracker.getState(e);this.switchingTrack||r===vh||r===bh?en(e)?null!=(r=t.details)&&r.live&&!this.initPTS[e.cc]?(this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level `+this.trackId),this.state=k.WAITING_INIT_PTS,(r=this.mainDetails)&&r.fragmentStart!==t.details.fragmentStart&&Td(t.details,r)):super.loadFragment(e,t,i):this._loadInitSegment(e,t):this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){var t,i,r,s,a,n;this.media&&this.bufferedTrack&&({name:t,lang:i,assocLang:r,characteristics:s,audioCodec:a,channels:n}=this.bufferedTrack,Kl({name:t,lang:i,assocLang:r,characteristics:s,audioCodec:a,channels:n},e,Wl)||(ql(e.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null):this.bufferedTrack=e))}completeAudioSwitch(e){var t=this.hls;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,t.trigger(X.AUDIO_TRACK_SWITCHED,Za({},e))}}class Vm extends Zg{constructor(e,t){super(t,e.logger),this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(r,s,t){var a=null==s?void 0:s.renditionReports;if(a){let i=-1;for(let e=0;es.partTarget&&(e+=1);o=t&&$l(t);return new rm(l,0<=e?e:void 0,o)}}}loadPlaylist(e){this.clearTimer()}loadingPlaylist(e,t){this.clearTimer()}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}getUrlWithDirectives(e,t){if(t)try{return t.addDirectives(e)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}return e}playlistLoaded(s,a,n){var{details:o,stats:e}=a,l=self.performance.now(),h=e.loading.first?Math.max(0,l-e.loading.first):0,d=(o.advancedDateTime=Date.now()-h,this.hls.config.timelineOffset);if(d!==o.appliedTimelineOffset){let t=Math.max(d||0,0);o.appliedTimelineOffset=t,o.fragments.forEach(e=>{e.setStart(e.playlistOffset+t)})}if(o.live||null!=n&&n.live){d="levelInfo"in a?a.levelInfo:a.track;if(o.reloaded(n),n&&03*o.targetduration?(this.log(`Playlist last advanced ${u.toFixed(2)}s ago. Omitting segment and part directives.`),i=void 0,r=void 0):null!=n&&n.tuneInGoal&&f-o.partTarget>n.tuneInGoal?(this.warn(`CDN Tune-in goal increased from: ${n.tuneInGoal} to: ${e} with playlist age: `+o.age),e=0):(s=Math.floor(e/o.targetduration),i+=s,void 0!==r&&(f=Math.round(e%o.targetduration/o.partTarget),r+=f),this.log(`CDN Tune-in age: ${o.ageHeader}s last advanced ${u.toFixed(2)}s goal: ${e} skip sn ${s} to part `+r)),o.tuneInGoal=e),t=this.getDeliveryDirectives(o,a.deliveryDirectives,i,r),c||!g)return o.requestScheduled=l,void this.loadingPlaylist(d,t)}else(o.canBlockReload||o.canSkipUntil)&&(t=this.getDeliveryDirectives(o,a.deliveryDirectives,i,r));t&&void 0!==i&&o.canBlockReload&&(o.requestScheduled=e.loading.first+Math.max(p-2*h,p/2)),this.scheduleLoading(d,t,o)}}else this.clearTimer()}scheduleLoading(e,t,i){var r,i=i||e.details;!i||(r=self.performance.now(),(i=i.requestScheduled)<=r)?this.loadingPlaylist(e,t):(i=i-r,this.log(`reload live playlist ${e.name||e.bitrate+"bps"} in ${Math.round(i)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(e,t),i))}getDeliveryDirectives(e,t,i,r){let s=$l(e);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,r=t.part,s=Fl),new rm(i,r,s)}checkRetry(e){var t=e.details,i=eh(e),r=e.errorAction,{action:s,retryCount:a=0,retryConfig:n}=r||{},s=!!r&&!!n&&(s===ch||!r.resolved&&s===hh);if(s){if(a>=n.maxNumRetry)return!1;i&&null!=(i=e.context)&&i.deliveryDirectives?(this.warn(`Retrying playlist loading ${a+1}/${n.maxNumRetry} after "${t}" without delivery-directives`),this.loadPlaylist()):(i=sh(n,a),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),i),this.warn(`Retrying playlist loading ${a+1}/${n.maxNumRetry} after "${t}" in ${i}ms`)),e.levelRetry=!0,r.resolved=!0}return s}}function mc(t,i){if(t.length!==i.length)return!1;for(let e=0;et[e]!==i[e])}function yc(e,t){return t.label.toLowerCase()===e.name.toLowerCase()&&(!t.language||t.language.toLowerCase()===(e.lang||"").toLowerCase())}class jm extends Vm{constructor(e){super(e,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){var e=this.hls;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){var e=this.hls;e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVEL_LOADING,this.onLevelLoading,this),e.off(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(X.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.audioTracks||[]}onAudioTrackLoaded(e,t){var i,{id:r,groupId:s,details:a}=t,n=this.tracksInGroup[r];n&&n.groupId===s?(i=n.details,n.details=t.details,this.log(`Audio track ${r} "${n.name}" lang:${n.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,t,i)):this.warn(`Audio track with id:${r} and group:${s} not found in active group `+(null==n?void 0:n.groupId))}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(s){s=this.hls.levels[s];if(s){let t=s.audioGroups||null,i=this.groupIds,r=this.currentTrack;if(!t||(null==i?void 0:i.length)!==(null==t?void 0:t.length)||null!=t&&t.some(e=>-1===(null==i?void 0:i.indexOf(e)))){this.groupIds=t,this.trackId=-1,this.currentTrack=null;s=this.tracks.filter(e=>!t||-1!==t.indexOf(e.groupId));if(s.length)this.selectDefaultTrack&&!s.some(e=>e.default)&&(this.selectDefaultTrack=!1),s.forEach((e,t)=>{e.id=t});else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=s;var a=this.hls.config.audioPreference;!r&&a&&(n=zl(a,s,Wl),r=-1{var a=e[t],n=e.reduce((e,t,i)=>{t=t.uri;return(e[t]||(e[t]=[])).push(i),e},{})[a.uri];1{if(e.videoRange!==o||e.frameRate!==l||e.codecSet.substring(0,4)!==h)return!1;let t=e.audioGroups;e=r.filter(e=>!t||-1!==t.indexOf(e.groupId));return-1{let t=e.audioGroups;e=r.filter(e=>!t||-1!==t.indexOf(e.groupId));return-1=r.length?this.warn("Invalid audio track id: "+e):(this.selectDefaultTrack=!1,t=this.currentTrack,i=(r=r[e]).details&&!r.details.live,e===this.trackId&&r===t&&i||(this.log(`Switching to audio-track ${e} "${r.name}" lang:${r.lang} group:${r.groupId} channels:`+r.channels),this.trackId=e,this.currentTrack=r,this.hls.trigger(X.AUDIO_TRACK_SWITCHING,Za({},r)),i)||(e=this.switchParams(r.url,null==t?void 0:t.details,r.details),this.loadPlaylist(e)))}findTrackId(t){var i=this.tracksInGroup;for(let e=0;e{this.append({label:"async-blocker",execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}},t)})}prependBlocker(t){return new Promise(e=>{this.queues&&this.queues[t].unshift({label:"async-blocker-prepend",execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}})})}removeBlockers(){null!==this.queues&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach(e=>{var t=null==(t=e[0])?void 0:t.label;"async-blocker"!==t&&"async-blocker-prepend"!==t||(e[0].execute(),e.splice(0,1))})}unblockAudio(e){null!==this.queues&&this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio")}executeNext(t){if(null!==this.queues&&null!==this.tracks){var i=this.queues[t];if(i.length){var i=i[0];try{i.execute()}catch(e){i.onError(e),null===this.queues||null===this.tracks||null!=(i=null==(i=this.tracks[t])?void 0:i.buffer)&&i.updating||this.shiftAndExecuteNext(t)}}}}shiftAndExecuteNext(e){null!==this.queues&&(this.queues[e].shift(),this.executeNext(e))}current(e){var t;return(null==(t=this.queues)?void 0:t[e][0])||null}toString(){var{queues:e,tracks:t}=this;return null===e||null===t?"":` ${this.list("video")} ${this.list("audio")} ${this.list("audiovideo")}}`}list(e){var t;return null!=(t=this.queues)&&t[e]||null!=(t=this.tracks)&&t[e]?`${e}: (${this.listSbInfo(e)}) `+this.listOps(e):""}listSbInfo(e){var t=null==(t=this.tracks)?void 0:t[e],e=null==t?void 0:t.buffer;return e?"SourceBuffer"+(e.updating?" updating":"")+(t.ended?" ended":"")+(t.ending?" ending":""):"none"}listOps(e){var t;return(null==(t=this.queues)?void 0:t[e].map(e=>e.label).join(", "))||""}}let fs=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,gs="HlsJsTrackRemovedError";class Hm extends Error{constructor(e){super(e),this.name=gs}}class zm extends Zg{constructor(e,t){super("buffer-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=e=>{var t;this.hls&&"open"===(null==(t=this.mediaSource)?void 0:t.readyState)&&this.hls.pauseBuffering()},this._onStartStreaming=e=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=e=>{var{media:t,mediaSource:i}=this;e&&this.log("Media source opened"),t&&i&&(i.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(X.MEDIA_ATTACHED,{media:t,mediaSource:i}),null!==this.mediaSource)&&this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{var{mediaSrc:e,_objectUrl:t}=this;e!==t&&this.error(`Media element src was set while attaching MediaSource (${t} > ${e})`)},this.hls=e,this.fragmentTracker=t,this.appendSource=(t=Ho(e.config.preferManagedMediaSource),"undefined"!=typeof self&&t===self.ManagedMediaSource),this.initTracks(),this.registerListeners()}hasSourceTypes(){return 0{var[t]=e;t&&(r[t]=Qa({},this.tracks[t]),this.removeBuffer(t)),e[0]=e[1]=null}),{media:t,mediaSource:i,tracks:r}}initTracks(){this.sourceBuffers=[[null,null],[null,null]],this.tracks={},this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,t){let i,r=2;(!t.audio||t.video)&&t.altAudio||(r=1),this.bufferCodecEventsTotal=r,this.log(r+" bufferCodec event(s) expected."),null!=(i=this.transferData)&&i.mediaSource&&this.sourceBufferCount&&r&&this.bufferCreated()}onMediaAttaching(e,t){var i,r,s,a=this.media=t.media,n=(this.transferData=this.overrides=void 0,Ho(this.appendSource));if(n){var o=!!t.mediaSource,t=((o||t.overrides)&&(this.transferData=t,this.overrides=t.overrides),this.mediaSource=t.mediaSource||new n);if(this.assignMediaSource(t),o)this._objectUrl=a.src,this.attachTransferred();else{n=this._objectUrl=self.URL.createObjectURL(t);if(this.appendSource)try{a.removeAttribute("src");var l=self.ManagedMediaSource;a.disableRemotePlayback=a.disableRemotePlayback||l&&t instanceof l,bc(a),i=a,r=n,(s=self.document.createElement("source")).type="video/mp4",s.src=r,i.appendChild(s),a.load()}catch(e){a.src=n}else a.src=n}a.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(e){var t;this.log(`${(null==(t=this.transferData)?void 0:t.mediaSource)===e?"transferred":"created"} media source: `+(null==(t=e.constructor)?void 0:t.name)),e.addEventListener("sourceopen",this._onMediaSourceOpen),e.addEventListener("sourceended",this._onMediaSourceEnded),e.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(e.addEventListener("startstreaming",this._onStartStreaming),e.addEventListener("endstreaming",this._onEndStreaming))}attachTransferred(){var e=this.media,t=this.transferData;if(t&&e){var i=this.tracks;let n=t.tracks;var r,s=n?Object.keys(n):null,a=s?s.length:0,o=()=>{Promise.resolve().then(()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen()})};if(n&&s&&a)if(this.tracksReady){if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal}) required tracks: ${B(i,(e,t)=>"initSegment"===e?void 0:t)}; transfer tracks: ${B(n,(e,t)=>"initSegment"===e?void 0:t)}}`),!zo(n,i))return t.mediaSource=null,t.tracks=void 0,a=e.currentTime,r=this.details,1<(r=Math.max(a,(null==r?void 0:r.fragments[0].start)||0))-a?void this.log(`attachTransferred: waiting for playback to reach new tracks start time ${a} -> `+r):(this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(n)}"->"${Object.keys(i)}") start time: ${r} currentTime: `+a),this.onMediaDetaching(X.MEDIA_DETACHING,{}),this.onMediaAttaching(X.MEDIA_ATTACHING,t),void(e.currentTime=r));this.transferData=void 0,s.forEach(e=>{var t,i,r,s,a=n[e];a&&(t=a.buffer)&&(i=this.fragmentTracker,r=a.id,(i.hasFragments(r)||i.hasParts(r))&&(s=bn.getBuffered(t),i.detectEvictedFragments(e,s,r,null,!0)),this.sourceBuffers[Ec(e)]=[e,t],t.updating&&this.operationQueue&&this.operationQueue.prependBlocker(e),this.trackSourceBuffer(e,a))}),o(),this.bufferCreated()}else this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");else this.log("attachTransferred: MediaSource w/o SourceBuffers"),o()}}get mediaSourceOpenOrEnded(){var e=null==(e=this.mediaSource)?void 0:e.readyState;return"open"===e||"ended"===e}onMediaDetaching(e,t){var i=!!t.transferMedia,{media:r,mediaSource:s,_objectUrl:a}=(this.transferData=this.overrides=void 0,this);if(s){if(this.log("media source "+(i?"transferring":"detaching")),i)this.sourceBuffers.forEach(([e])=>{e&&this.removeBuffer(e)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){var n="open"===s.readyState;try{var o=s.sourceBuffers;for(let e=o.length;e--;)n&&o[e].abort(),s.removeSourceBuffer(o[e]);n&&s.endOfStream()}catch(e){this.warn(`onMediaDetaching: ${e.message} while calling endOfStream`)}}this.sourceBufferCount&&this.onBufferReset()}s.removeEventListener("sourceopen",this._onMediaSourceOpen),s.removeEventListener("sourceended",this._onMediaSourceEnded),s.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(s.removeEventListener("startstreaming",this._onStartStreaming),s.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}r&&(r.removeEventListener("emptied",this._onMediaEmptied),i||(a&&self.URL.revokeObjectURL(a),this.mediaSrc===a?(r.removeAttribute("src"),this.appendSource&&bc(r),r.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(X.MEDIA_DETACHED,t)}onBufferReset(){this.sourceBuffers.forEach(([e])=>{e&&this.resetBuffer(e)}),this.initTracks()}resetBuffer(t){var e,i=null==(i=this.tracks[t])?void 0:i.buffer;if(this.removeBuffer(t),i)try{null!=(e=this.mediaSource)&&e.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(e){this.warn("onBufferReset "+t,e)}delete this.tracks[t]}removeBuffer(e){this.removeBufferListeners(e),this.sourceBuffers[Ec(e)]=[null,null];e=this.tracks[e];e&&(e.buffer=void 0)}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new Gm(this.tracks)}onBufferCodecs(e,c){let t,u=this.tracks;var i=Object.keys(c),r=(this.log(`BUFFER_CODECS: "${i}" (current SB count ${this.sourceBufferCount})`),"audiovideo"in c&&(u.audio||u.video)||u.audiovideo&&("audio"in c||"video"in c)),s=!r&&this.sourceBufferCount&&this.media&&i.some(e=>!u[e]);r||s?this.warn(`Unsupported transition between "${Object.keys(u)}" and "${i}" SourceBuffers`):(i.forEach(e=>{var{id:t,codec:i,levelCodec:r,container:s,metadata:a,supplemental:n}=c[e];let o=u[e];var l=null==(l=this.transferData)||null==(l=l.tracks)?void 0:l[e],l=null!=l&&l.buffer?l:o,h=(null==l?void 0:l.pendingCodec)||(null==l?void 0:l.codec),l=null==l?void 0:l.levelCodec,n=(o=o||(u[e]={buffer:void 0,listeners:[],codec:i,supplemental:n,container:s,levelCodec:r,metadata:a,id:t}),Il(h,l)),a=null==n?void 0:n.replace(fs,"$1");let d=Il(i,r);l=null==(t=d)?void 0:t.replace(fs,"$1");d&&n&&a!==l&&("audio"===e.slice(0,5)&&(d=Rl(d,this.appendSource)),this.log(`switching codec ${h} to `+d),d!==(o.pendingCodec||o.codec)&&(o.pendingCodec=d),o.container=s,this.appendChangeType(e,s,d))}),(this.tracksReady||this.sourceBufferCount)&&(c.tracks=this.sourceBufferTracks),this.sourceBufferCount||(1{var i=this.tracks[t];return e[t]={id:i.id,container:i.container,codec:i.codec,levelCodec:i.levelCodec},e},{})}appendChangeType(i,r,s){let a=r+";codecs="+s;var e={label:"change-type="+a,execute:()=>{var e,t=this.tracks[i];t&&null!=(e=t.buffer)&&e.changeType&&(this.log(`changing ${i} sourceBuffer type to `+a),e.changeType(a),t.codec=s,t.container=r),this.shiftAndExecuteNext(i)},onStart:()=>{},onComplete:()=>{},onError:e=>{this.warn(`Failed to change ${i} SourceBuffer type`,e)}};this.append(e,i,this.isPending(this.tracks[i]))}blockAudio(e){var t=e.start;let i=t+.05*e.duration;!0!==(null==(t=this.fragmentTracker.getAppendedFrag(t,qa))?void 0:t.gap)&&(this.blockedAudioAppend={op:t={label:"block-audio",execute:()=>{var e=this.tracks.video;(this.lastVideoAppendEnd>i||null!=e&&e.buffer&&bn.isBuffered(e.buffer,i)||!0===(null==(e=this.fragmentTracker.getAppendedFrag(i,qa))?void 0:e.gap))&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"))},onStart:()=>{},onComplete:()=>{},onError:e=>{this.warn("Error executing block-audio operation",e)}},frag:e},this.append(t,"audio",!0))}unblockAudio(){var{blockedAudioAppend:e,operationQueue:t}=this;e&&t&&(this.blockedAudioAppend=null,t.unblockAudio(e.op))}onBufferAppending(e,t){var i=this.tracks;let{data:r,type:s,parent:a,frag:n,part:o,chunkMeta:l,offset:h}=t,d=l.buffering[s],{sn:c,cc:u}=n;t=self.performance.now();d.start=t;let p=n.stats.buffering,f=o?o.stats.buffering:null;0===p.start&&(p.start=t),f&&0===f.start&&(f.start=t);t=i.audio;let g=!1;"audio"===s&&"audio/mpeg"===(null==t?void 0:t.container)&&(g=!this.lastMpegAudioChunk||1===l.id||this.lastMpegAudioChunk.sn!==l.sn,this.lastMpegAudioChunk=l);var m,v,y,t=i.video,i=null==t?void 0:t.buffer;i&&"initSegment"!==c&&(m=o||n,v=this.blockedAudioAppend,"audio"!==s||"main"===a||this.blockedAudioAppend||t.ending||t.ended?"video"===s&&(t=m.end,v&&((v=v.frag.start){d.executeStart=self.performance.now();var e=null==(e=this.tracks[s])?void 0:e.buffer;e&&(g?this.updateTimestampOffset(e,b,.1,s,c,u):void 0!==h&&G(h)&&this.updateTimestampOffset(e,h,1e-6,s,c,u)),this.appendExecutor(r,s)},onStart:()=>{},onComplete:()=>{var e=self.performance.now();d.executeEnd=d.end=e,0===p.first&&(p.first=e),f&&0===f.first&&(f.first=e);let i={};this.sourceBuffers.forEach(([e,t])=>{e&&(i[e]=bn.getBuffered(t))}),this.appendErrors[s]=0,"audio"===s||"video"===s?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(X.BUFFER_APPENDED,{type:s,frag:n,part:o,chunkMeta:l,parent:n.type,timeRanges:i})},onError:e=>{var t={type:Y.MEDIA_ERROR,parent:n.type,details:q.BUFFER_APPEND_ERROR,sourceBufferName:s,frag:n,part:o,chunkMeta:l,error:e,err:e,fatal:!1},i=null==(i=this.media)?void 0:i.error;e.code===DOMException.QUOTA_EXCEEDED_ERR||"QuotaExceededError"==e.name||"quota"in e?t.details=q.BUFFER_FULL_ERROR:e.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!i||e.name===gs&&0===this.sourceBufferCount?t.errorAction=mh(!0):(e=++this.appendErrors[s],this.warn(`Failed ${e}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${s}" sourceBuffer (${i||"no media error"})`),(e>=this.hls.config.appendErrorMaxRetry||i)&&(t.fatal=!0)),this.hls.trigger(X.ERROR,t)}};this.log(`queuing "${s}" append sn: ${c}${o?" p: "+o.index:""} of ${n.type===qa?"level":"track"} ${n.level} cc: `+u),this.append(t,s,this.isPending(this.tracks[s]))}getFlushOp(t,i,r){return this.log(`queuing "${t}" remove ${i}-`+r),{label:"remove",execute:()=>{this.removeExecutor(t,i,r)},onStart:()=>{},onComplete:()=>{this.hls.trigger(X.BUFFER_FLUSHED,{type:t})},onError:e=>{this.warn(`Failed to remove ${i}-${r} from "${t}" SourceBuffer`,e)}}}onBufferFlushing(e,t){let{type:i,startOffset:r,endOffset:s}=t;i?this.append(this.getFlushOp(i,r,s),i):this.sourceBuffers.forEach(([e])=>{e&&this.append(this.getFlushOp(e,r,s),e)})}onFragParsed(e,t){let{frag:i,part:r}=t;var t=[],s=(r||i).elementaryStreams;s[rl]?t.push("audiovideo"):(s[tl]&&t.push("audio"),s[il]&&t.push("video"));0===t.length&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${i.type} level: ${i.level} sn: `+i.sn),this.blockBuffers(()=>{var e=self.performance.now(),e=(i.stats.buffering.end=e,r&&(r.stats.buffering.end=e),(r||i).stats);this.hls.trigger(X.FRAG_BUFFERED,{frag:i,part:r,stats:e,id:i.type})},t).catch(e=>{this.warn("Fragment buffered callback "+e),this.stepOperationQueue(this.sourceBufferTypes)})}onFragChanged(e,t){this.trimBuffers()}get bufferedToEnd(){return 0{if(e){e=this.tracks[e];if(e)return!e.ended||e.ending}return!1})}onBufferEos(e,i){this.sourceBuffers.forEach(([e])=>{var t;e&&(t=this.tracks[e],i.type&&i.type!==e||(t.ending=!0,t.ended)||(t.ended=!0,this.log(e+" buffer reached EOS")))});var t=!1!==(null==(t=this.overrides)?void 0:t.endOfStream);0e&&!(null!=(e=this.tracks[e])&&e.ended))?t?(this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();var e=this.mediaSource;e&&"open"===e.readyState?(this.log("Calling mediaSource.endOfStream()"),e.endOfStream(),this.hls.trigger(X.BUFFERED_TO_END,void 0)):e&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+e.readyState)})):(this.tracksEnded(),this.hls.trigger(X.BUFFERED_TO_END,void 0)):"video"===i.type&&this.unblockAudio()}tracksEnded(){this.sourceBuffers.forEach(([e])=>{null!==e&&(e=this.tracks[e])&&(e.ending=!1)})}onLevelUpdated(e,{details:t}){t.fragments.length&&(this.details=t,this.updateDuration())}updateDuration(){this.blockUntilOpen(()=>{var e=this.getDurationAndRange();e&&this.updateMediaSource(e)})}onError(e,t){var i;t.details===q.BUFFER_APPEND_ERROR&&t.frag&&(i=null==(i=t.errorAction)?void 0:i.nextAutoLevel,G(i))&&i!==t.frag.level&&this.resetAppendErrors()}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){var e,{hls:t,details:i,media:r}=this;r&&null!==i&&this.sourceBufferCount&&(t=t.config,r=r.currentTime,e=i.levelTargetDuration,i=i.live&&null!==t.liveBackBufferLength?t.liveBackBufferLength:t.backBufferLength,G(i)&&0<=i&&(i=Math.max(i,e),i=Math.floor(r/e)*e-i,this.flushBackBuffer(r,e,i)),i=t.frontBufferFlushThreshold,G(i))&&0{if(t){t=bn.getBuffered(t);if(0t.start(0)){this.hls.trigger(X.BACK_BUFFER_REACHED,{bufferEnd:r});var i,t=this.tracks[e];if(null!=(i=this.details)&&i.live)this.hls.trigger(X.LIVE_BACK_BUFFER_REACHED,{bufferEnd:r});else if(null!=t&&t.ended)return void this.log(`Cannot flush ${e} back buffer while SourceBuffer is in ended state`);this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:0,endOffset:r,type:e})}}})}flushFrontBuffer(s,e,a){this.sourceBuffers.forEach(([e,t])=>{var i,r;!t||(i=(t=bn.getBuffered(t)).length)<2||(r=t.start(i-1),t=t.end(i-1),r=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){var{bufferCodecEventsTotal:e,pendingTrackCount:t,tracks:i}=this;this.log(`checkPendingTracks (pending: ${t} codec events expected: ${e}) `+B(i)),this.tracksReady&&((e=null==(t=this.transferData)?void 0:t.tracks)&&Object.keys(e).length?this.attachTransferred():this.createSourceBuffers())}bufferCreated(){if(this.sourceBufferCount){let r={};this.sourceBuffers.forEach(([e,t])=>{var i;e&&(i=this.tracks[e],r[e]={buffer:t,container:i.container,codec:i.codec,supplemental:i.supplemental,levelCodec:i.levelCodec,id:i.id,metadata:i.metadata})}),this.hls.trigger(X.BUFFER_CREATED,{tracks:r}),this.log("SourceBuffers created. Running queue: "+this.operationQueue),this.sourceBuffers.forEach(([e])=>{this.executeNext(e)})}else{var e=new Error("could not create source buffer for media codec(s)");this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:e,reason:e.message})}}createSourceBuffers(){var e,{tracks:t,sourceBuffers:i,mediaSource:r}=this;if(!r)throw new Error("createSourceBuffers called when mediaSource was null");for(e in t){var s=e,a=t[s];if(this.isPending(a)){var n=this.getTrackCodec(a,s),o=a.container+";codecs="+n;a.codec=n,this.log(`creating sourceBuffer(${o})${this.currentOp(s)?" Queued":""} `+B(a));try{var l=r.addSourceBuffer(o),h=[s,l];i[Ec(s)]=h,a.buffer=l}catch(e){return this.error("error while trying to add sourceBuffer: "+e.message),this.shiftAndExecuteNext(s),null!=(n=this.operationQueue)&&n.removeBlockers(),delete this.tracks[s],void this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:e,sourceBufferName:s,mimeType:o,parent:a.id})}this.trackSourceBuffer(s,a)}}this.bufferCreated()}getTrackCodec(e,t){var i=e.supplemental;let r=e.codec;i=Il(r=i&&("video"===t||"audiovideo"===t)&&Sl(i,"video")?((e,t)=>{var i=[];if(e){var r=e.split(",");for(let e=0;e{t=t.removedRanges;null!=t&&t.length&&this.hls.trigger(X.BUFFER_FLUSHED,{type:e})})}get mediaSrc(){var e,t=(null==(e=this.media)||null==(t=e.querySelector)?void 0:t.call(e,"source"))||this.media;return null==t?void 0:t.src}onSBUpdateStart(e){e=this.currentOp(e);e&&e.onStart()}onSBUpdateEnd(e){var t;"closed"===(null==(t=this.mediaSource)?void 0:t.readyState)?this.resetBuffer(e):(t=this.currentOp(e))&&(t.onComplete(),this.shiftAndExecuteNext(e))}onSBUpdateError(e,t){var i=new Error(e+" SourceBuffer error. MediaSource readyState: "+(null==(i=this.mediaSource)?void 0:i.readyState)),t=(this.error(""+i,t),this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:i,fatal:!1}),this.currentOp(e));t&&t.onError(i)}updateTimestampOffset(e,t,i,r,s,a){var n=t-e.timestampOffset;Math.abs(n)>=i&&(this.log(`Updating ${r} SourceBuffer timestampOffset to ${t} (sn: ${s} cc: ${a})`),e.timestampOffset=t)}removeExecutor(e,t,i){var{media:r,mediaSource:s}=this,a=this.tracks[e],n=null==a?void 0:a.buffer;r&&s&&n?(r=G(r.duration)?r.duration:1/0,s=G(s.duration)?s.duration:1/0,(t=Math.max(0,t))<(i=Math.min(i,r,s))&&(!a.ending||a.ended)?(a.ended=!1,this.log(`Removing [${t},${i}] from the ${e} SourceBuffer`),n.remove(t,i)):this.shiftAndExecuteNext(e)):(this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(e))}appendExecutor(e,t){var i=this.tracks[t],r=null==i?void 0:i.buffer;if(!r)throw new Hm(`Attempting to append to the ${t} SourceBuffer, but it does not exist`);i.ending=!1,i.ended=!1,r.appendBuffer(e)}blockUntilOpen(e){if(this.isUpdating()||this.isQueued())this.blockBuffers(e).catch(e=>{this.warn("SourceBuffer blocked callback "+e),this.stepOperationQueue(this.sourceBufferTypes)});else try{e()}catch(e){this.warn(`Callback run without blocking ${this.operationQueue} `+e)}}isUpdating(){return this.sourceBuffers.some(([e,t])=>e&&t.updating)}isQueued(){return this.sourceBuffers.some(([e])=>e&&!!this.currentOp(e))}isPending(e){return!!e&&!e.buffer}blockBuffers(t,e=this.sourceBufferTypes){if(!e.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(t);let i=this.operationQueue;var r=e.map(e=>this.appendBlocker(e));return 1{i===this.operationQueue&&(t(),this.stepOperationQueue(this.sourceBufferTypes))})}stepOperationQueue(e){e.forEach(e=>{var t=null==(t=this.tracks[e])?void 0:t.buffer;t&&!t.updating&&this.shiftAndExecuteNext(e)})}append(e,t,i){this.operationQueue&&this.operationQueue.append(e,t,i)}appendBlocker(e){if(this.operationQueue)return this.operationQueue.appendBlocker(e)}currentOp(e){return this.operationQueue?this.operationQueue.current(e):null}executeNext(e){e&&this.operationQueue&&this.operationQueue.executeNext(e)}shiftAndExecuteNext(e){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(e)}get pendingTrackCount(){return Object.keys(this.tracks).reduce((e,t)=>e+(this.isPending(this.tracks[t])?1:0),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((e,[t])=>e+(t?1:0),0)}get sourceBufferTypes(){return this.sourceBuffers.map(([e])=>e).filter(e=>!!e)}addBufferListener(e,t,i){var r,s=this.tracks[e];s&&(r=s.buffer)&&(i=i.bind(this,e),s.listeners.push({event:t,listener:i}),r.addEventListener(t,i))}removeBufferListeners(e){e=this.tracks[e];if(e){let t=e.buffer;t&&(e.listeners.forEach(e=>{t.removeEventListener(e.event,e.listener)}),e.listeners.length=0)}}}function bc(t){var e=t.querySelectorAll("source");[].slice.call(e).forEach(e=>{t.removeChild(e)})}function Ec(e){return"audio"===e?1:0}class Km{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){var e=this.hls;e.on(X.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.BUFFER_CODECS,this.onBufferCodecs,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){var e=this.hls;e.off(X.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.BUFFER_CODECS,this.onBufferCodecs,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,t){t=this.hls.levels[t.droppedLevel];this.isLevelAllowed(t)&&this.restrictedLevels.push({bitrate:t.bitrate,height:t.height,width:t.width})}onMediaAttaching(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(e,t){var i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onLevelsUpdated(e,t){this.timer&&G(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){var e,t,i;this.media&&(this.mediaHeight<=0||this.mediaWidth<=0?this.clientRect=null:(e=this.hls.levels).length&&(t=this.hls,(i=this.getMaxLevel(e.length-1))!==this.autoLevelCapping&&t.logger.log(`Setting autoLevelCapping to ${i}: ${e[i].height}p@${e[i].bitrate} for media ${this.mediaWidth}x`+this.mediaHeight),t.autoLevelCapping=i,t.autoLevelEnabled&&t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping))}getMaxLevel(i){var e=this.hls.levels;return e.length?(e=e.filter((e,t)=>this.isLevelAllowed(e)&&t<=i),this.clientRect=null,Km.getMaxLevelByMediaSize(e,this.mediaWidth,this.mediaHeight)):-1}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){var e,t,i;return this.clientRect||(t={width:0,height:0},(e=this.media)&&(i=e.getBoundingClientRect(),t.width=i.width,t.height=i.height,t.width||t.height||(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)),this.clientRect=t)}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(e){}return Math.min(e,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(t){return!this.restrictedLevels.some(e=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(null==t||!t.length)return-1;let r=t.length-1;var s,a=Math.max(e,i);for(let e=0;e=a||n.height>=a)&&(n=n,!(s=t[e+1])||n.width!==s.width||n.height!==s.height)){r=e;break}}return r}}let L={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},ms={HLS:"h"};class Wm{constructor(e,t){Array.isArray(e)&&(e=e.map(e=>e instanceof Wm?e:new Wm(e))),this.value=e,this.params=t}}let vs="Dict";function Tc(e,t,i,r){return new Error(`failed to ${e} "${e=t,Array.isArray(e)?JSON.stringify(e):e instanceof Map?"Map{}":e instanceof Set?"Set{}":"object"==typeof e?JSON.stringify(e):String(e)}" as `+i,{cause:r})}function wc(e,t,i){return Tc("serialize",e,t,i)}class Ym{constructor(e){this.description=e}}let ys="Bare Item",bs="Boolean",Es="Byte Sequence";function Sc(e){if(!1===ArrayBuffer.isView(e))throw wc(e,Es);return`:${e=e,btoa(String.fromCharCode(...e))}:`}let Ts="Integer";function kc(e){if((t=e)<-999999999999999||999999999999999!0===t?";"+Rc(e):`;${Rc(e)}=`+Ac(t)).join("")}function Pc(e){return e instanceof Wm?""+Ac(e.value)+Ic(e.params):Ac(e)}function Cc(e,t={whitespace:!0}){if("object"!=typeof e||null==e)throw wc(e,vs);e=e instanceof Map?e.entries():Object.entries(e),t=null!=t&&t.whitespace?" ":"";return Array.from(e).map(([e,t])=>{t instanceof Wm==!1&&(t=new Wm(t));let i=Rc(e);return!0===t.value?i+=Ic(t.params):(i+="=",Array.isArray(t.value)?i+=`(${(e=t).value.map(Pc).join(" ")})`+Ic(e.params):i+=Pc(t)),i}).join(","+t)}function xc(e,t){return Cc(e,t)}let As={br:Va="CMCD-Object",ab:Va,d:Va,ot:Va,tb:Va,tpb:Va,lb:Va,tab:Va,lab:Va,url:Va,pb:Wa="CMCD-Request",bl:Wa,tbl:Wa,dl:Wa,ltc:Wa,mtp:Wa,nor:Wa,nrr:Wa,rc:Wa,sn:Wa,sta:Wa,su:Wa,ttfb:Wa,ttfbb:Wa,ttlb:Wa,cmsdd:Wa,cmsds:Wa,smrt:Wa,df:Wa,cs:Wa,ts:Wa,cid:hn="CMCD-Session",pr:hn,sf:hn,sid:hn,st:hn,v:hn,msd:hn,bs:Pd="CMCD-Status",bsd:Pd,cdn:Pd,rtp:Pd,bg:Pd,pt:Pd,ec:Pd,e:Pd},Rs={REQUEST:Wa};function Dc(s,e){var t={};if(!s)return t;var r,i=Object.keys(s);let a=e?(r=e,Object.keys(r).reduce((t,i)=>{var e;return null!=(e=r[i])&&e.forEach(e=>t[e]=i),t},{})):{};return i.reduce((e,t)=>{var i,r=As[t]||a[t]||Rs.REQUEST;return(null!=(i=e[r])?i:e[r]={})[t]=s[t],e},t)}let Is="event",Ps=e=>Math.round(e),Cs=(e,t)=>Array.isArray(e)?e.map(e=>Cs(e,t)):e instanceof Wm&&"string"==typeof e.value?new Wm(Cs(e.value,t),e.params):(t.baseUrl&&(e=((e,t)=>{var i=new URL(e),t=new URL(t);if(i.origin!==t.origin)return e;for(var r=i.pathname.split("/").slice(1),s=t.pathname.split("/").slice(1,-1);r[0]===s[0];)r.shift(),s.shift();for(;s.length;)s.shift(),r.unshift("..");return r.join("/")+i.search+i.hash})(e,t.baseUrl)),1===t.version?encodeURIComponent(e):e),xs=(za=e=>100*Ps(e/100),{br:Ps,d:Ps,bl:za,dl:za,mtp:za,nor:(e,t)=>{let i=e;return 2<=t.version&&(e instanceof Wm&&"string"==typeof e.value?i=new Wm([e]):"string"==typeof e&&(i=[e])),Cs(i,t)},rtp:za,tb:Ps}),Ds="request",Os="response",Ms=["ab","bg","bl","br","bs","bsd","cdn","cid","cs","df","ec","lab","lb","ltc","msd","mtp","pb","pr","pt","sf","sid","sn","st","sta","tab","tb","tbl","tpb","ts","v"],Fs=["e"],Ns=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function Oc(e){return Ns.test(e)}let Us=["d","dl","nor","ot","rtp","su"],$s=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"],Bs=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function Mc(e){return Bs.includes(e)||Oc(e)}let Vs={[Os]:function(e){return Ms.includes(e)||Us.includes(e)||$s.includes(e)||Oc(e)},[Is]:function(e){return Ms.includes(e)||Fs.includes(e)||Oc(e)},[Ds]:function(e){return Ms.includes(e)||Us.includes(e)||Oc(e)}};function Fc(o,t={}){let l={};if(null!=o&&"object"==typeof o){let r=t.version||o.v||1;var i=t.reportingMode||Ds,h=1===r?Mc:Vs[i];let e=Object.keys(o).filter(h);h=t.filter;"function"==typeof h&&(e=e.filter(h));let s=i===Os||i===Is,a=(s&&!e.includes("ts")&&e.push("ts"),1{let t=o[e];var i=a[e];if("function"==typeof i&&(t=i(t,n)),"v"===e){if(1===r)return;t=r}"pr"==e&&1===t||(s&&"ts"===e&&!G(t)&&(t=Date.now()),"number"==typeof(i=t)?!G(i):null==i||""===i||!1===i)||(["ot","sf","st","e","sta"].includes(e)&&"string"==typeof t&&(t=new Ym(t)),l[e]=t)})}return l}function Nc(e,t,i){Qa(e,([e,t={}]=[t,i],i={},e?(e=Dc(Fc(e,t),null==t?void 0:t.customHeaderMap),Object.entries(e).reduce((e,[t,i])=>{i=xc(i,{whitespace:!1});return i&&(e[t]=i),e},i)):i))}let js="CMCD";function Uc(e,t={}){return e?([e,t={}]=[e,t],e=e?xc(Fc(e,t),{whitespace:!1}):"",encodeURIComponent(e)):""}let Gs=/CMCD=[^&#]+/;function $c(e,t,i){[t,i={}]=[t,i];i=t?(t=Uc(t,i),js+"="+t):"";return i?Gs.test(e)?e.replace(Gs,i):(t=e.includes("?")?"&":"?",e+t+i):e}class qm extends Zg{constructor(e){super("content-steering",e.logger),this.hls=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this._pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.registerListeners()}registerListeners(){var e=this.hls;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){var e=this.hls;e&&(e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.ERROR,this.onError,this))}pathways(){return(this.levels||[]).reduce((e,t)=>(-1===e.indexOf(t.pathwayId)&&e.push(t.pathwayId),e),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(e){this.updatePathwayPriority(e)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){var e=1e3*this.timeToLoad-(performance.now()-this.updated);if(0e!==t))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,t){t=t.contentSteering;null!==t&&(this.pathwayId=t.pathwayId,this.uri=t.uri,this.started)&&this.startLoad()}onManifestParsed(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks}onError(e,i){var r=i.errorAction;if((null==r?void 0:r.action)===hh&&r.flags===ph){var s,a,n,o=this.levels;let e=this._pathwayPriority,t=this.pathwayId;i.context&&({groupId:s,pathwayId:a,type:n}=i.context,s&&o?t=this.getPathwayForGroupId(s,n,t):a&&(t=a)),t in this.penalizedPathways||(this.penalizedPathways[t]=performance.now()),(e=!e&&o?this.pathways():e)&&1t===e.pathwayId)}updatePathwayPriority(t){this._pathwayPriority=t;let i=this.penalizedPathways,r=performance.now();Object.keys(i).forEach(e=>{3e5{let{ID:a,"BASE-ID":t,"URI-REPLACEMENT":n}=e;i.some(e=>e.pathwayId===a)||(e=this.getLevelsForPathway(t).map(t=>{var e=new En(t.attrs),i=(e["PATHWAY-ID"]=a,e.AUDIO&&e.AUDIO+"_clone_"+a),r=e.SUBTITLES&&e.SUBTITLES+"_clone_"+a,i=(i&&(o[e.AUDIO]=i,e.AUDIO=i),r&&(l[e.SUBTITLES]=r,e.SUBTITLES=r),Vc(t.uri,e["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",n)),s=new sm({attrs:e,audioCodec:t.audioCodec,bitrate:t.bitrate,height:t.height,name:t.name,url:i,videoCodec:t.videoCodec,width:t.width});if(t.audioGroups)for(let e=1;e{this.log(`Loaded steering manifest: "${o}"`);e=e.data;if(1!==(null==e?void 0:e.VERSION))this.log(`Steering VERSION ${e.VERSION} not supported!`);else{this.updated=performance.now(),this.timeToLoad=e.TTL;var{"RELOAD-URI":s,"PATHWAY-CLONES":a,"PATHWAY-PRIORITY":n}=e;if(s)try{this.uri=new self.URL(s,o).href}catch(e){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+s)}this.scheduleRefresh(this.uri||i.url),a&&this.clonePathways(a);s={steeringManifest:e,url:o.toString()};this.hls.trigger(X.STEERING_MANIFEST_LOADED,s),n&&this.updatePathwayPriority(n)}},onError:(t,i,e,r)=>{if(this.log(`Error loading steering manifest: ${t.code} ${t.text} (${i.url})`),this.stopLoad(),410===t.code)this.enabled=!1,this.log(`Steering manifest ${i.url} no longer available`);else{let e=1e3*this.timeToLoad;429===t.code?("function"==typeof(null==(t=this.loader)?void 0:t.getResponseHeader)&&(t=t.getResponseHeader("Retry-After"))&&(e=1e3*parseFloat(t)),this.log(`Steering manifest ${i.url} rate limited`)):this.scheduleRefresh(this.uri||i.url,e)}},onTimeout:(e,t,i)=>{this.log(`Timeout loading steering manifest (${t.url})`),this.scheduleRefresh(this.uri||t.url)}};this.log("Requesting steering manifest: "+o),this.loader.load(t,i,e)}scheduleRefresh(t,e=1e3*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var e=null==(e=this.hls)?void 0:e.media;e&&!e.ended?this.loadSteeringManifest(t):this.scheduleRefresh(t,1e3*this.timeToLoad)},e)}}function Bc(t,r,s,a){t&&Object.keys(r).forEach(i=>{var e=t.filter(e=>e.groupId===i).map(e=>{var t=Qa({},e);return t.details=void 0,t.attrs=new En(t.attrs),t.url=t.attrs.URI=Vc(e.url,e.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",s),t.groupId=t.attrs["GROUP-ID"]=r[i],t.attrs["PATHWAY-ID"]=a,t});t.push(...e)})}function Vc(e,t,i,r){let{HOST:s,PARAMS:a,[i]:n}=r,o,l=(t&&(o=null==n?void 0:n[t])&&(e=o),new self.URL(e));return s&&!o&&(l.host=s),a&&Object.keys(a).sort().forEach(e=>{e&&l.searchParams.set(e,a[e])}),l.href}class Xm extends Zg{constructor(e){super("eme",e.logger),this.hls=void 0,this.config=void 0,this.media=null,this.mediaResolved=void 0,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=Xm.CDMCleanupPromise?[Xm.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=i=>{let{initDataType:d,initData:c}=i,u=`"${i.type}" event: init data type: "${d}"`;if(this.debug(u),null!==c){if(!this.keyFormatPromise){let e=Object.keys(this.keySystemAccessPromises);var t=(e=e.length?e:Kh(this.config)).map(zh).filter(e=>!!e);this.keyFormatPromise=this.getKeyFormatPromise(t)}this.keyFormatPromise.then(e=>{e=Hh(e);if("sinf"!==d||e!==an.FAIRPLAY)this.log(`Ignoring "${i.type}" event with init data type: "${d}" for selected key-system `+e);else{let i;try{var t=tn(new Uint8Array(c)),s=pl(Fh(JSON.parse(t).sinf));if(!s)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");i=new Uint8Array(s.subarray(8,24))}catch(e){return void this.warn(u+" Failed to parse sinf: "+e)}var a=Ja(i),{keyIdToKeySessionPromise:n,mediaKeySessions:o}=this;let r=n[a];for(let t=0;tthis.generateRequestWithPreferredKeySession(e,d,c,"encrypted-event-key-match"))).catch(e=>this.handleError(e));break}}}r||this.handleError(new Error(`Key ID ${a} not encountered in playlist. Key-system sessions ${o.length}.`))}}).catch(e=>this.handleError(e))}},this.onWaitingForKey=e=>{this.log(`"${e.type}" event`)},this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();var e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null}registerListeners(){this.hls.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(X.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(X.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(X.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(X.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(X.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(X.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(e){var{drmSystems:t,widevineLicenseUrl:i}=this.config,t=null==t?void 0:t[e];return t?t.licenseUrl:e===an.WIDEVINE&&i?i:void 0}getLicenseServerUrlOrThrow(e){var t=this.getLicenseServerUrl(e);if(void 0===t)throw new Error(`no license server URL configured for key-system "${e}"`);return t}getServerCertificateUrl(e){var t=this.config.drmSystems,t=null==t?void 0:t[e];if(t)return t.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){var t=this.hls.levels,i=(e,t,i)=>!!e&&i.indexOf(e)===t;let n=t.map(e=>e.audioCodec).filter(i),o=t.map(e=>e.videoCodec).filter(i);return n.length+o.length===0&&o.push("avc1.42e01e"),new Promise((r,s)=>{let a=t=>{let i=t.shift();this.getMediaKeysPromise(i,n,o).then(e=>r({keySystem:i,mediaKeys:e})).catch(e=>{t.length?a(t):e instanceof Qm?s(e):s(new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_NO_ACCESS,error:e,fatal:!0},e.message))})};a(e)})}requestMediaKeySystemAccess(e,t){var i=this.config.requestMediaKeySystemAccessFunc;if("function"==typeof i)return i(e,t);{let e="Configured requestMediaKeySystemAccess is not a function "+i;return null===Br&&"http:"===self.location.protocol&&(e="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(e))}}getMediaKeysPromise(s,e,t){e=((e,t,i,r)=>{let s;switch(e){case an.FAIRPLAY:s=["cenc","sinf"];break;case an.WIDEVINE:case an.PLAYREADY:s=["cenc"];break;case an.CLEARKEY:s=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+e)}var a=s,n=r;return[a={initDataTypes:a,persistentState:n.persistentState||"optional",distinctiveIdentifier:n.distinctiveIdentifier||"optional",sessionTypes:n.sessionTypes||[n.sessionType||"temporary"],audioCapabilities:t.map(e=>({contentType:"audio/mp4; codecs="+e,robustness:n.audioRobustness||"",encryptionScheme:n.audioEncryptionScheme||null})),videoCapabilities:i.map(e=>({contentType:"video/mp4; codecs="+e,robustness:n.videoRobustness||"",encryptionScheme:n.videoEncryptionScheme||null}))}]})(s,e,t,this.config.drmSystemOptions||{});let i=this.keySystemAccessPromises[s],a=null==(t=i)?void 0:t.keySystemAccess;if(a)return a.then(()=>i.mediaKeys);{this.log(`Requesting encrypted media "${s}" key-system access with config: `+B(e)),a=this.requestMediaKeySystemAccess(s,e);let r=i=this.keySystemAccessPromises[s]={keySystemAccess:a};return a.catch(e=>{this.log(`Failed to obtain access to key-system "${s}": `+e)}),a.then(e=>{this.log(`Access for key-system "${e.keySystem}" obtained`);let i=this.fetchServerCertificate(s);this.log(`Create media-keys for "${s}"`);e=r.mediaKeys=e.createMediaKeys().then(t=>(this.log(`Media-keys created for "${s}"`),r.hasMediaKeys=!0,i.then(e=>e?this.setMediaKeysServerCertificate(t,s,e):t)));return e.catch(e=>{this.error(`Failed to create media-keys for "${s}"}: `+e)}),e})}}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${Ja(e.keyId||[])} keyUri: `+e.uri);var r=i.createSession(),e={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(e),e}renewKeySession(e){var t,i,r=e.decryptdata;r.pssh?(t=this.createMediaKeySessionContext(e),i=jc(r),this.keyIdToKeySessionPromise[i]=this.generateRequestWithPreferredKeySession(t,"cenc",r.pssh.buffer,"expired")):this.warn("Could not renew expired session. Missing pssh initData."),this.removeSession(e)}updateKeySession(e,t){var i=e.mediaKeysSession;return this.log(`Updating key-session "${i.sessionId}" for keyId ${Ja(e.decryptdata.keyId||[])} } (data length: ${t.byteLength})`),i.update(t)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map(e=>({keySystem:e,hasMediaKeys:this.keySystemAccessPromises[e].hasMediaKeys})).filter(({hasMediaKeys:e})=>!!e).map(({keySystem:e})=>zh(e)).filter(e=>!!e)}getKeySystemAccess(e){return this.getKeySystemSelectionPromise(e).then(({keySystem:e,mediaKeys:t})=>this.attemptSetMediaKeys(e,t))}selectKeySystem(e){return new Promise((i,r)=>{this.getKeySystemSelectionPromise(e).then(({keySystem:e})=>{var t=zh(e);t?i(t):r(new Error(`Unable to find format for key-system "${e}"`))}).catch(r)})}selectKeySystemFormat(e){var t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats `+t.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise}getKeyFormatPromise(e){let t=Kh(this.config);e=e.map(Hh).filter(e=>!!e&&-1!==t.indexOf(e));return this.selectKeySystem(e)}getKeyStatus(t){var i=this.mediaKeySessions;for(let e=0;ee.keyId&&t.mediaKeysSession.keyStatuses.has(e.keyId)?t.mediaKeysSession.keyStatuses.get(e.keyId):e.matches(t.decryptdata)?t.keyStatus:void 0)(t,i[e]);if(r)return r}}loadKey(i){let r=i.keyInfo.decryptdata;var e=jc(r),t=this.bannedKeyIds[e];if(t||"internal-error"===this.getKeyStatus(r))return t=Gc(t||"internal-error",r),this.handleError(t,i.frag),Promise.reject(t);let s=`(keyId: ${e} format: "${r.keyFormat}" method: ${r.method} uri: ${r.uri})`;this.log("Starting session for key "+s);var t=this.keyIdToKeySessionPromise[e];return t?(t.catch(e=>{var t;e instanceof Qm&&(t=Za({},e.data),"internal-error"===this.getKeyStatus(r)&&(t.decryptdata=r),t=new Qm(t,e.message),this.handleError(t,i.frag))}),t):((t=this.getKeySystemForKeyPromise(r).then(({keySystem:e,mediaKeys:t})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${i.frag.sn} ${i.frag.type}: ${i.frag.level} using key `+s),this.attemptSetMediaKeys(e,t).then(()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:e,mediaKeys:t,decryptdata:r}))))).then(e=>{var t=r.pssh?r.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(e,"cenc",t,"playlist-key")})).catch(e=>this.handleError(e,i.frag)),this.keyIdToKeySessionPromise[e]=t)}throwIfDestroyed(e=0){if(!this.hls)throw new Error("invalid state")}handleError(e,t){this.hls&&(e instanceof Qm?(t&&(e.data.frag=t),t=e.data.decryptdata,this.error(""+e.message+(t?` (${Ja(t.keyId||[])})`:"")),this.hls.trigger(X.ERROR,e.data)):(this.error(e.message),this.hls.trigger(X.ERROR,{type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0})))}getKeySystemForKeyPromise(e){var t=jc(e),t=this.keyIdToKeySessionPromise[t];return t||(e=(t=Hh(e.keyFormat))?[t]:Kh(this.config),this.attemptKeySystemAccess(e))}getKeySystemSelectionPromise(e){if(0===(e=e.length?e:Kh(this.config)).length)throw new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+B({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(e)}attemptSetMediaKeys(e,i){if(this.mediaResolved=void 0,this.mediaKeys===i)return Promise.resolve();let t=this.setMediaKeysQueue.slice(),r=(this.log(`Setting media-keys for "${e}"`),Promise.all(t).then(()=>this.media?this.media.setMediaKeys(i):new Promise((e,t)=>{this.mediaResolved=()=>{if(this.mediaResolved=void 0,!this.media)return t(new Error("Attempted to set mediaKeys without media element attached"));this.mediaKeys=i,this.media.setMediaKeys(i).then(e).catch(t)}})));return this.mediaKeys=i,this.setMediaKeysQueue.push(r),r.then(()=>{this.log(`Media-keys set for "${e}"`),t.push(r),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(e=>-1===t.indexOf(e))})}generateRequestWithPreferredKeySession(r,e,t,i){var s=null==(s=this.config.drmSystems)||null==(s=s[r.keySystem])?void 0:s.generateRequest;if(s)try{var a=s.call(this.hls,e,t,r);if(!a)throw new Error("Invalid response from configured generateRequest filter");e=a.initDataType,t=a.initData||null,r.decryptdata.pssh=t?new Uint8Array(t):null}catch(e){if(this.warn(e.message),this.hls&&this.hls.config.debug)throw e}if(null===t)return this.log(`Skipping key-session request for "${i}" (no initData)`),Promise.resolve(r);let n=jc(r.decryptdata),o=r.decryptdata.uri,l=(this.log(`Generating key-session request for "${i}" keyId: ${n} URI: ${o} (init data type: ${e} length: ${t.byteLength})`),new Id);s=r._onmessage=e=>{var t,i=r.mediaKeysSession;i?({messageType:e,message:t}=e,this.log(`"${e}" message event for session "${i.sessionId}" message size: `+t.byteLength),"license-request"===e||"license-renewal"===e?this.renewLicense(r,t).catch(e=>{l.eventNames().length?l.emit("error",e):this.handleError(e)}):"license-release"===e?r.keySystem===an.FAIRPLAY&&this.updateKeySession(r,Nh("acknowledged")).then(()=>this.removeSession(r)).catch(e=>this.handleError(e)):this.warn(`unhandled media key message type "${e}"`)):l.emit("error",new Error("invalid state"))};let h=(e,t)=>{let i;(t.keyStatus=e).startsWith("usable")?l.emit("resolved"):"internal-error"===e||"output-restricted"===e||"output-downscaled"===e?i=Gc(e,t.decryptdata):"expired"===e?i=new Error(`key expired (keyId: ${n})`):"released"===e?i=new Error("key released"):"status-pending"!==e&&this.warn(`unhandled key status change "${e}" (keyId: ${n})`),i&&(l.eventNames().length?l.emit("error",i):this.handleError(i))};a=r._onkeystatuseschange=e=>{if(r.mediaKeysSession){let i=this.getKeyStatuses(r);if(Object.keys(i).some(e=>"status-pending"!==i[e]))if("expired"===i[n])this.log(`Expired key ${B(i)} in key-session "${r.mediaKeysSession.sessionId}"`),this.renewKeySession(r);else{let t=i[n];if(t)h(t,r);else{let e;r.keyStatusTimeouts||(r.keyStatusTimeouts={}),(e=r.keyStatusTimeouts)[n]||(e[n]=self.setTimeout(()=>{if(r.mediaKeysSession&&this.mediaKeys){var e=this.getKeyStatus(r.decryptdata);if(e&&"status-pending"!==e)return this.log(`No status for keyId ${n} in key-session "${r.mediaKeysSession.sessionId}". Using session key-status ${e} from other session.`),h(e,r);this.log(`key status for ${n} in key-session "${r.mediaKeysSession.sessionId}" timed out after 1000ms`),t="internal-error",h(t,r)}},1e3)),this.log(`No status for keyId ${n} (${B(i)}).`)}}}else l.emit("error",new Error("invalid state"))};nn(r.mediaKeysSession,"message",s),nn(r.mediaKeysSession,"keystatuseschange",a);let d=new Promise((e,t)=>{l.on("error",t),l.on("resolved",e)});return r.mediaKeysSession.generateRequest(e,t).then(()=>{this.log(`Request generated for key-session "${r.mediaKeysSession.sessionId}" keyId: ${n} URI: `+o)}).catch(e=>{throw new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_NO_SESSION,error:e,decryptdata:r.decryptdata,fatal:!1},"Error generating key-session request: "+e)}).then(()=>d).catch(e=>(l.removeAllListeners(),this.removeSession(r).then(()=>{throw e}))).then(()=>(l.removeAllListeners(),r))}getKeyStatuses(r){let s={};return r.mediaKeysSession.keyStatuses.forEach((e,t)=>{"string"==typeof t&&"object"==typeof e&&(i=t,t=e,e=i);var i="buffer"in t?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),t=(r.keySystem===an.PLAYREADY&&16===i.length&&(t=Ja(i),s[t]=e,Uh(i)),Ja(i));"internal-error"===e&&(this.bannedKeyIds[t]=e),this.log(`key status change "${e}" for keyStatuses keyId: ${t} key-session "${r.mediaKeysSession.sessionId}"`),s[t]=e}),s}fetchServerCertificate(o){let i=this.config;let r=new i.loader(i),l=this.getServerCertificateUrl(o);return l?(this.log(`Fetching server certificate for "${o}"`),new Promise((s,a)=>{let n={responseType:"arraybuffer",url:l};var e=i.certLoadPolicy.default,e={loadPolicy:e,timeout:e.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},t={onSuccess:(e,t,i,r)=>{s(e.data)},onError:(e,t,i,r)=>{a(new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:i,response:Za({url:n.url,data:void 0},e)},`"${o}" certificate request failed (${l}). Status: ${e.code} (${e.text})`))},onTimeout:(e,t,i)=>{a(new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:i,response:{url:n.url,data:void 0}},`"${o}" certificate request timed out (${l})`))},onAbort:(e,t,i)=>{a(new Error("aborted"))}};r.load(n,e,t)})):Promise.resolve()}setMediaKeysServerCertificate(r,s,a){return new Promise((t,i)=>{r.setServerCertificate(a).then(e=>{this.log(`setServerCertificate ${e?"success":"not supported by CDM"} (${a.byteLength}) on "${s}"`),t(r)}).catch(e=>{i(new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:e,fatal:!0},e.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then(e=>this.updateKeySession(t,new Uint8Array(e)).catch(e=>{throw new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:t.decryptdata,error:e,fatal:!1},e.message)}))}unpackPlayReadyKeyMessage(i,e){var t=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!t.includes("PlayReadyKeyMessage"))return i.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;var e=(new DOMParser).parseFromString(t,"application/xml"),r=e.querySelectorAll("HttpHeader");if(0 in key message")}setupLicenseXHR(t,i,r,s){let a=this.config.licenseXhrSetup;return a?Promise.resolve().then(()=>{if(r.decryptdata)return a.call(this.hls,t,i,r,s);throw new Error("Key removed")}).catch(e=>{if(r.decryptdata)return t.open("POST",i,!0),a.call(this.hls,t,i,r,s);throw e}).then(e=>(t.readyState||t.open("POST",i,!0),{xhr:t,licenseChallenge:e||s})):(t.open("POST",i,!0),Promise.resolve({xhr:t,licenseChallenge:s}))}requestLicense(a,n){let o=this.config.keyLoadPolicy.default;return new Promise((i,e)=>{let r=this.getLicenseServerUrlOrThrow(a.keySystem),s=(this.log("Sending license request to URL: "+r),new XMLHttpRequest);s.responseType="arraybuffer",s.onreadystatechange=()=>{if(!this.hls||!a.mediaKeysSession)return e(new Error("invalid state"));if(4===s.readyState)if(200===s.status){this._requestLicenseFailureCount=0;let e=s.response;this.log("License received "+(e instanceof ArrayBuffer?e.byteLength:e));var t=this.config.licenseResponseCallback;if(t)try{e=t.call(this.hls,s,r,a)}catch(e){this.error(e)}i(e)}else{var t=o.errorRetry,t=t?t.maxNumRetry:0;this._requestLicenseFailureCount++,this._requestLicenseFailureCount>t||400<=s.status&&s.status<500?e(new Qm({type:Y.KEY_SYSTEM_ERROR,details:q.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:a.decryptdata,fatal:!0,networkDetails:s,response:{url:r,data:void 0,code:s.status,text:s.statusText}},`License Request XHR failed (${r}). Status: ${s.status} (${s.statusText})`)):(t=t-this._requestLicenseFailureCount+1,this.warn(`Retrying license request, ${t} attempts left`),this.requestLicense(a,n).then(i,e))}},a.licenseXhr&&a.licenseXhr.readyState!==XMLHttpRequest.DONE&&a.licenseXhr.abort(),a.licenseXhr=s,this.setupLicenseXHR(s,r,a,n).then(({xhr:e,licenseChallenge:t})=>{a.keySystem==an.PLAYREADY&&(t=this.unpackPlayReadyKeyMessage(e,t)),e.send(t)}).catch(e)})}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(e,t){var i;this.config.emeEnabled&&(t=t.media,nn(this.media=t,"encrypted",this.onMediaEncrypted),nn(t,"waitingforkey",this.onWaitingForKey),(i=this.mediaResolved)?i():this.mediaKeys=t.mediaKeys)}onMediaDetached(){var e=this.media;e&&(wd(e,"encrypted",this.onMediaEncrypted),wd(e,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null)}_clear(){this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},this.bannedKeyIds={};var t=this.mediaResolved;if(t&&t(),this.mediaKeys||this.mediaKeySessions.length){var t=this.media,i=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,ym.clearKeyUriToKeyIdMap();let e=i.length;Xm.CDMCleanupPromise=Promise.all(i.map(e=>this.removeSession(e)).concat((null==t||null==(i=t.setMediaKeys(null))?void 0:i.catch(e=>{this.log("Could not clear media keys: "+e),this.hls&&this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error("Could not clear media keys: "+e)})}))||Promise.resolve())).catch(e=>{this.log("Could not close sessions and clear media keys: "+e),this.hls&&this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close sessions and clear media keys: "+e)})}).then(()=>{e&&this.log("finished closing key sessions and clearing media keys")})}}onManifestLoading(){this._clear()}onManifestLoaded(e,{sessionKeys:t}){t&&this.config.emeEnabled&&(this.keyFormatPromise||(t=t.reduce((e,t)=>(-1===e.indexOf(t.keyFormat)&&e.push(t.keyFormat),e),[]),this.log("Selecting key-system from session-keys "+t.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(t)))}removeSession(e){let{mediaKeysSession:i,licenseXhr:r,decryptdata:s}=e;if(i){this.log(`Remove licenses and keys and close session "${i.sessionId}" keyId: `+Ja((null==s?void 0:s.keyId)||[])),e._onmessage&&(i.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(i.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),r&&r.readyState!==XMLHttpRequest.DONE&&r.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;var a=this.mediaKeySessions.indexOf(e);-1self.clearTimeout(t[e]));a=this.config.drmSystemOptions;return((e=a)&&("persistent-license"===e.sessionType||null!=(e=e.sessionTypes)&&e.some(e=>"persistent-license"===e))?new Promise((e,t)=>{self.setTimeout(()=>t(new Error("MediaKeySession.remove() timeout")),8e3),i.remove().then(e).catch(t)}):Promise.resolve()).catch(e=>{this.log("Could not remove session: "+e),this.hls&&this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error("Could not remove session: "+e)})}).then(()=>i.close()).catch(e=>{this.log("Could not close session: "+e),this.hls&&this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close session: "+e)})})}return Promise.resolve()}}function jc(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw new Error("keyId is null");return Ja(e.keyId)}Xm.CDMCleanupPromise=void 0;class Qm extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=new Error(t)),(this.data=e).err=e.error}}function Gc(e,t){var i="output-restricted"===e,r=i?q.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:q.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new Qm({type:Y.KEY_SYSTEM_ERROR,details:r,fatal:!1,decryptdata:t},i?"HDCP level output restricted":`key status changed to "${e}"`)}function Hc(e,t){let i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function zc(t,i){var e=t.mode;if("disabled"===e&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(i.id))try{if(t.addCue(i),!t.cues.getCueById(i.id))throw new Error("addCue is failed for: "+i)}catch(e){H.debug("[texttrack-utils]: "+e);try{var r=new self.TextTrackCue(i.startTime,i.endTime,i.text);r.id=i.id,t.addCue(r)}catch(e){H.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+e)}}"disabled"===e&&(t.mode=e)}function Kc(t,i){var e=t.mode;if("disabled"===e&&(t.mode="hidden"),t.cues)for(let e=t.cues.length;e--;)i&&t.cues[e].removeEventListener("enter",i),t.removeCue(t.cues[e]);"disabled"===e&&(t.mode=e)}function Wc(t,e,i,r){var s=t.mode;if("disabled"===s&&(t.mode="hidden"),t.cues&&0{var a=[],n=((e,t)=>{if(t<=e[0].startTime)return 0;var i=e.length-1;if(t>e[i].endTime)return-1;let r=0,s=i,a;for(;r<=s;)if(a=Math.floor((s+r)/2),te[a].startTime&&r=r&&o.endTime<=s)a.push(o);else if(o.startTime>s)return a}return a})(t.cues,e,i);for(let e=0;ethis.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){let t=null;var i=Yc(this.media.textTracks);for(let e=0;e{Kc(e)}))}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.subtitleTracks}onSubtitleTrackLoaded(e,t){var i,{id:r,groupId:s,details:a}=t,n=this.tracksInGroup[r];n&&n.groupId===s?(i=n.details,n.details=t.details,this.log(`Subtitle track ${r} "${n.name}" lang:${n.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,t,i)):this.warn(`Subtitle track with id:${r} and group:${s} not found in active group `+(null==n?void 0:n.groupId))}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(s){s=this.hls.levels[s];if(s){let t=s.subtitleGroups||null,i=this.groupIds,r=this.currentTrack;if(!t||(null==i?void 0:i.length)!==(null==t?void 0:t.length)||null!=t&&t.some(e=>-1===(null==i?void 0:i.indexOf(e)))){this.groupIds=t,this.trackId=-1,this.currentTrack=null;s=this.tracks.filter(e=>!t||-1!==t.indexOf(e.groupId));if(s.length)this.selectDefaultTrack&&!s.some(e=>e.default)&&(this.selectDefaultTrack=!1),s.forEach((e,t)=>{e.id=t});else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=s;var a,n=this.hls.config.subtitlePreference;!r&&n&&(this.selectDefaultTrack=!1,a=zl(n,s),r=-1yc(t,e))[0])||this.warn(`Unable to find subtitle TextTrack with name "${t.name}" and language "${t.lang}"`),[].slice.call(e).forEach(e=>{"disabled"!==e.mode&&e!==i&&(e.mode="disabled")}),i&&(e=this.subtitleDisplay?"showing":"hidden",i.mode!==e)&&(i.mode=e)}}setSubtitleTrack(e){var t,i,r,s,a,n,o=this.tracksInGroup;this.media?e<-1||e>=o.length||!G(e)?this.warn("Invalid subtitle track id: "+e):(this.selectDefaultTrack=!1,t=this.currentTrack,o=o[e]||null,this.trackId=e,this.currentTrack=o,this.toggleTrackModes(),o?(n=!!o.details&&!o.details.live,e===this.trackId&&o===t&&n||(this.log("Switching to subtitle-track "+e+(o?` "${o.name}" lang:${o.lang} group:`+o.groupId:"")),{id:n,groupId:i="",name:r,type:s,url:a}=o,this.hls.trigger(X.SUBTITLE_TRACK_SWITCH,{id:n,groupId:i,name:r,type:s,url:a}),n=this.switchParams(o.url,null==t?void 0:t.details,o.details),this.loadPlaylist(n))):this.hls.trigger(X.SUBTITLE_TRACK_SWITCH,{id:e})):this.queuedDefaultTrack=e}}function qc(e){let t=5381,i=e.length;for(;i;)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()}let Hs=(e=>(e[e.Point=0]="Point",e[e.Range=1]="Range",e))({});class Jm{constructor(e,t){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=t,this.dateRange=e,this.setDateRange(e)}setDateRange(e){this.dateRange=e,this.resumeOffset=e.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=e.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=e.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=e.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var e;this.appendInPlaceStarted=!1,null!=(e=this.assetListLoader)&&e.destroy(),this.assetListLoader=void 0,this.supplementsPrimary||(this.assetListResponse=null,this.assetList=[],this._duration=null)}isAssetPastPlayoutLimit(e){var t;return 0=this.assetList.length||(t=this.playoutLimit,!(e<=0||isNaN(t))&&(0===t||t<((null==(t=this.assetList[e])?void 0:t.startOffset)||0)))}findAssetIndex(e){return this.assetList.indexOf(e)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){var e=this.dateRange.startTime;if(this.snapOptions.out){var t=this.dateRange.tagAnchor;if(t)return Xc(e,t)}return e}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){var e,t;return!(0!==this.startTime&&!this.snapOptions.out)||!!(e=this.dateRange.tagAnchor)&&(t=this.dateRange.startTime)-Xc(t,e)<.1}get resumptionOffset(){var e=this.resumeOffset,e=G(e)?e:this.duration;return this.cumulativeDuration+e}get resumeTime(){var e=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){var t=this.resumeAnchor;if(t)return Xc(e,t)}return e}get appendInPlace(){return!!this.appendInPlaceStarted||!this.appendInPlaceDisabled&&!(this.cue.once||this.cue.pre||!this.startIsAligned||!(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)<.025))}set appendInPlace(e){this.appendInPlaceStarted?this.resetOnResume=!e:this.appendInPlaceDisabled=!e}get timelineStart(){return null!==this._timelineStart?this._timelineStart:this.startTime}set timelineStart(e){this._timelineStart=e}get duration(){var e=this.playoutLimit;let t;return t=null!==this._duration?this._duration:this.dateRange.duration||this.dateRange.plannedDuration||0,t=!isNaN(e)&&e":e.cue.post?"":""}${e.timelineStart.toFixed(2)}-${e.resumeTime.toFixed(2)}]`;var e}}function Xc(e,t){return e-t.start{this.reachedPlayout(this.currentTime)&&this.hls&&this.hls.trigger(X.PLAYOUT_LIMIT_REACHED,{})};let s=this.hls=new e(t);this.interstitial=i,this.assetItem=r;e=()=>{this.hasDetails=!0};s.once(X.LEVEL_LOADED,e),s.once(X.AUDIO_TRACK_LOADED,e),s.once(X.SUBTITLE_TRACK_LOADED,e),s.on(X.MEDIA_ATTACHING,(e,{media:t})=>{this.removeMediaListeners(),this.mediaAttached=t,this.interstitial.playoutLimit&&(t.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace)&&s.on(X.BUFFER_APPENDED,()=>{var e=this.bufferedEnd;this.reachedPlayout(e)&&(this._bufferedEosTime=e,s.trigger(X.BUFFERED_TO_END,void 0))})})}get appendInPlace(){return this.interstitial.appendInPlace}loadSource(){var t=this.hls;if(t)if(t.url)t.levels.length&&!t.started&&t.startLoad(-1,!0);else{let e=this.assetItem.uri;try{e=Qc(e,t.config.primarySessionId||"").href}catch(e){}t.loadSource(e)}}bufferedInPlaceToEnd(e){var t,i;return!!this.appendInPlace&&(!(null==(t=this.hls)||!t.bufferedToEnd)||!!e&&(t=Math.min(this._bufferedEosTime||1/0,this.duration),i=this.timelineOffset,e=bn.bufferInfo(e,i,0),t-.02<=this.getAssetTime(e.end)))}reachedPlayout(e){var t=this.interstitial.playoutLimit;return this.startOffset+e>=t}get destroyed(){var e;return!(null!=(e=this.hls)&&e.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var e;return(null==(e=this.hls)?void 0:e.media)||null}get bufferedEnd(){var e=this.media||this.mediaAttached;return e?(e=bn.bufferInfo(e,e.currentTime,.001),this.getAssetTime(e.end)):this._bufferedEosTime||this.currentTime}get currentTime(){var e=this.media||this.mediaAttached;return e?this.getAssetTime(e.currentTime):this._currentTime||0}get duration(){var e=this.assetItem.duration;if(!e)return 0;var t=this.interstitial.playoutLimit;if(t){t=t-this.startOffset;if(01/9e4&&this.hls)){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e}}getAssetTime(e){var t=this.timelineOffset,i=this.duration;return Math.min(Math.max(0,e-t),i)}removeMediaListeners(){var e=this.mediaAttached;e&&(this._currentTime=e.currentTime,this.bufferSnapShot(),e.removeEventListener("timeupdate",this.checkPlayout))}bufferSnapShot(){var e;this.mediaAttached&&null!=(e=this.hls)&&e.bufferedToEnd&&(this._bufferedEosTime=this.bufferedEnd)}destroy(){this.removeMediaListeners(),this.hls&&this.hls.destroy(),this.hls=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(e){var t;this.loadSource(),null!=(t=this.hls)&&t.attachMedia(e)}detachMedia(){var e;this.removeMediaListeners(),(this.mediaAttached=null)!=(e=this.hls)&&e.detachMedia()}resumeBuffering(){var e;null!=(e=this.hls)&&e.resumeBuffering()}pauseBuffering(){var e;null!=(e=this.hls)&&e.pauseBuffering()}transferMedia(){var e;return this.bufferSnapShot(),(null==(e=this.hls)?void 0:e.transferMedia())||null}resetDetails(){var e,t=this.hls;t&&this.hasDetails&&(t.stopLoad(),t.levels.forEach(e=e=>delete e.details),t.allAudioTracks.forEach(e),t.allSubtitleTracks.forEach(e),this.hasDetails=!1)}on(e,t,i){var r;null!=(r=this.hls)&&r.on(e,t)}once(e,t,i){var r;null!=(r=this.hls)&&r.once(e,t)}off(e,t,i){var r;null!=(r=this.hls)&&r.off(e,t)}toString(){var e;return`HlsAssetPlayer: ${Jc(this.assetItem)} ${null==(e=this.hls)?void 0:e.sessionId} `+(this.appendInPlace?"append-in-place":"")}}class tv extends Zg{constructor(e,t){super("interstitials-sched",t),this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=e}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach(e=>e.reset()),this.events=this.items=null}resetErrorsInRange(i,r){return this.events?this.events.reduce((e,t)=>i<=t.startOffset&&r>t.startOffset?(delete t.error,e+1):e,0):0}get duration(){var e=this.items;return e?e[e.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(e){return e&&this.eventMap[e]||null}hasEvent(e){return e in this.eventMap}findItemIndex(e,t){if(e.event)return this.findEventIndex(e.event.identifier);let i=-1;e.nextEvent?i=this.findEventIndex(e.nextEvent.identifier)-1:e.previousEvent&&(i=this.findEventIndex(e.previousEvent.identifier)+1);var r,s=this.items;if(s)for(s[i]||(void 0===t&&(t=e.start),i=this.findItemIndexAtTime(t));0<=i&&null!=(r=s[i])&&r.event;)i--;return i}findItemIndexAtTime(i,r){var s=this.items;if(s)for(let t=0;te.start&&i!a.includes(e.identifier)):[];i.length&&i.sort((e,t)=>{var i=e.cue.pre,r=e.cue.post,s=t.cue.pre,a=t.cue.post;if(i&&!s)return-1;if(s&&!i)return 1;if(r&&!a)return 1;if(a&&!r)return-1;if(!(i||s||r||a)){i=e.startTime,s=t.startTime;if(i!==s)return i-s}return e.dateRange.tagOrder-t.dateRange.tagOrder}),this.events=i,t.forEach(e=>{this.removeEvent(e)}),this.updateSchedule(e,t)}updateSchedule(e,t=[],r=!1){var s=this.events||[];if(s.length||t.length||this.length<2){let i=this.items;s=this.parseSchedule(s,e);(r||t.length||(null==i?void 0:i.length)!==s.length||s.some((e,t)=>.005!(e.error||e.cue.once&&e.hasPlayed))).length){this.resolveOffsets(g,e);let p=0,f=0;g.forEach((e,t)=>{var i=e.cue.pre,r=e.cue.post,s=g[t-1]||null,a=e.appendInPlace,n=r?v:e.startOffset,o=e.duration,l=e.timelineOccupancy===Hs.Range?o:0,h=(null==s?void 0:s.startTime)===n,d=n+e.cumulativeDuration;let c=a?d+o:n+e.resumptionOffset;if(i||!r&&n<=0){a=f,i=(f+=l,e.timelineStart=d,y);y+=o,m.push({event:e,start:d,end:c,playout:{start:i,end:y},integrated:{start:a,end:f}})}else{if(!(n<=v))return;h||(.033<(i=n-p)?(a=p,h=f,f+=i,u=y,y+=i,t={previousEvent:g[t-1]||null,nextEvent:e,start:a,end:a+i,playout:{start:u,end:y},integrated:{start:h,end:f}},m.push(t)):0v?v:h}),p{var i=e.cue.pre,r=e.cue.post,i=i?0:r?l:e.startTime,s=(this.updateAssetDurations(e),d===i),s=(s?e.cumulativeDuration=h:(h=0,d=i),!r&&e.snapOptions.in&&(e.resumeAnchor=Ql(null,o.fragments,e.startOffset+e.resumptionOffset,0,0)||void 0),!e.appendInPlace||e.appendInPlaceStarted||this.primaryCanResumeInPlaceAt(e,n)||(e.appendInPlace=!1),!e.appendInPlace&&t+1{var t,i=a[e].details,r=i.edge;return n>=r?(this.log(`"${s.identifier}" resumption ${n} past ${e} playlist end `+r),!1):(r=Ql(null,i.fragments,n))?(t="audio"===e?.175:0,!(Math.abs(r.start-n)<.025+t||Math.abs(r.end-n)<.025+t||(this.log(`"${s.identifier}" resumption ${n} not aligned with ${e} fragment bounds (${r.start}-${r.end} sn: ${r.sn} cc: ${r.cc})`),0))):(this.log(`"${s.identifier}" resumption ${n} does not align with any fragments in ${e} playlist (${i.fragStart}-${i.fragmentEnd})`),!0)})}updateAssetDurations(s){if(s.assetListLoaded){var a=s.timelineStart;let t=0,i=!1,r=!1;for(let e=0;e{var e=e.data,s=null==e?void 0:e.ASSETS;Array.isArray(s)?(a.assetListResponse=e,this.hls.trigger(X.ASSET_LIST_LOADED,{event:a,assetListResponse:e,networkDetails:r})):(s=this.assignAssetListError(a,q.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),i.url,t,r),this.hls.trigger(X.ERROR,s))},onError:(e,t,i,r)=>{e=this.assignAssetListError(a,q.ASSET_LIST_LOAD_ERROR,new Error(`Error loading X-ASSET-LIST: HTTP status ${e.code} ${e.text} (${t.url})`),t.url,r,i);this.hls.trigger(X.ERROR,e)},onTimeout:(e,t,i)=>{t=this.assignAssetListError(a,q.ASSET_LIST_LOAD_TIMEOUT,new Error(`Timeout loading X-ASSET-LIST (${t.url})`),t.url,e,i);this.hls.trigger(X.ERROR,t)}}),this.hls.trigger(X.ASSET_LIST_LOADING,{event:a}),e}assignAssetListError(e,t,i,r,s,a){return e.error=i,{type:Y.NETWORK_ERROR,details:t,fatal:!1,interstitial:e,url:r,error:i,networkDetails:a,stats:s}}}function tu(e){null!=e&&null!=(e=e.play())&&e.catch(()=>{})}function iu(e,t){return`[${e}] Advancing timeline position to `+t}class rv extends Zg{constructor(e,t){super("interstitials",e.logger),this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1},this.onSeeking=()=>{var t=this.currentTime;if(void 0!==t&&!this.playbackDisabled&&this.schedule){var i=t-this.timelinePos,r=Math.abs(i)<1/7056e5;if(!r){var r=i<=-.01,s=(-1!==this.timelinePos||this.effectivePlayingItem||this.checkStart(),this.timelinePos=t,this.bufferedPos=t,this.playingItem);if(s)if(r&&this.schedule.resetErrorsInRange(t,t-i)&&this.updateSchedule(!0),this.checkBuffer(),r&&t=s.end){i=this.findItemIndex(s);let e=this.schedule.findItemIndexAtTime(t);if(-1===e&&(e=i+(r?-1:1),this.log(`seeked ${r?"back ":""}to position not covered by schedule ${t} (resolving from ${i} to ${e})`)),!this.isInterstitial(s)&&null!=(a=this.media)&&a.paused&&(this.shouldPlay=!1),!r&&e>i){var a=this.schedule.findJumpRestrictedIndex(i+1,e);if(i{var e,t=this.currentTime;void 0===t||this.playbackDisabled||(-1!==this.timelinePos||this.effectivePlayingItem||this.checkStart(),t>this.timelinePos&&((this.timelinePos=t)>this.bufferedPos&&this.checkBuffer(),e=this.playingItem)&&!this.playingLastItem&&(t>=e.end&&(this.timelinePos=e.end,e=this.findItemIndex(e),this.setSchedulePosition(e+1)),e=this.playingAsset)&&e.timelineStart+(e.duration||0)<=t&&this.setScheduleToAssetAtTime(t,e))},this.onScheduleUpdate=(i,r)=>{var s=this.schedule;if(s){var a=this.playingItem,n=s.events||[],o=s.items||[],s=s.durations,l=i.map(e=>e.identifier),h=!(!n.length&&!l.length);(h||r)&&this.log(`INTERSTITIALS_UPDATED (${n.length}): ${n} Schedule: ${o.map(e=>eu(e))} pos: `+this.timelinePos),l.length&&this.log("Removed events "+l);let e=null,t=null;a&&(e=this.updateItem(a,this.timelinePos),this.itemsMatch(a,e)?this.playingItem=e:this.waitingItem=this.endedItem=null),this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);var d=this.bufferingItem;d&&(t=this.updateItem(d,this.bufferedPos),this.itemsMatch(d,t)?this.bufferingItem=t:d.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(d.event,null))),i.forEach(e=>{e.assetList.forEach(e=>{this.clearAssetPlayer(e.identifier,null)})}),this.playerQueue.forEach(t=>{if(t.interstitial.appendInPlace){var i=t.assetItem.timelineStart,r=t.timelineOffset-i;if(r)try{t.timelineOffset=i}catch(e){.025${i})`)}}}),(h||r)&&(this.hls.trigger(X.INTERSTITIALS_UPDATED,{events:n.slice(0),schedule:o.slice(0),durations:s,removedIds:l}),this.isInterstitial(a)&&l.includes(a.event.identifier)?(this.warn(`Interstitial "${a.event.identifier}" removed while playing`),this.primaryFallback(a.event)):(a&&this.trimInPlace(e,a),d&&t!==e&&this.trimInPlace(t,d),this.checkBuffer()))}},this.hls=e,this.HlsPlayerClass=t,this.assetListLoader=new iv(e),this.schedule=new tv(this.onScheduleUpdate,e.logger),this.registerListeners()}registerListeners(){var e=this.hls;e&&(e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.on(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(X.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.on(X.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.on(X.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.on(X.BUFFER_APPENDED,this.onBufferAppended,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.BUFFERED_TO_END,this.onBufferedToEnd,this),e.on(X.MEDIA_ENDED,this.onMediaEnded,this),e.on(X.ERROR,this.onError,this),e.on(X.DESTROYING,this.onDestroying,this))}unregisterListeners(){var e=this.hls;e&&(e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.off(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(X.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.off(X.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.off(X.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.off(X.BUFFER_CODECS,this.onBufferCodecs,this),e.off(X.BUFFER_APPENDED,this.onBufferAppended,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.BUFFERED_TO_END,this.onBufferedToEnd,this),e.off(X.MEDIA_ENDED,this.onMediaEnded,this),e.off(X.ERROR,this.onError,this),e.off(X.DESTROYING,this.onDestroying,this))}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var e;null!=(e=this.getBufferingPlayer())&&e.resumeBuffering()}pauseBuffering(){var e;null!=(e=this.getBufferingPlayer())&&e.pauseBuffering()}destroy(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.schedule=this.manager=null,this.hls=this.HlsPlayerClass=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){var e=this.primaryMedia||this.media;e&&this.removeMediaListeners(e)}removeMediaListeners(e){wd(e,"play",this.onPlay),wd(e,"pause",this.onPause),wd(e,"seeking",this.onSeeking),wd(e,"timeupdate",this.onTimeupdate)}onMediaAttaching(e,t){t=this.media=t.media;nn(t,"seeking",this.onSeeking),nn(t,"timeupdate",this.onTimeupdate),nn(t,"play",this.onPlay),nn(t,"pause",this.onPause)}onMediaAttached(e,t){var i=this.effectivePlayingItem,r=this.detachedData;(this.detachedData=null)===i?this.checkStart():r||(this.clearScheduleState(),r=this.findItemIndex(i),this.setSchedulePosition(r))}clearScheduleState(){this.log("clear schedule state"),this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(e,t){var t=!!t.transferMedia,i=this.media;this.media=null,t||(i&&this.removeMediaListeners(i),this.detachedData&&((t=this.getBufferingPlayer())&&(this.log("Removing schedule state for detachedData and "+t),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,t.detachMedia()),this.shouldPlay=!1))}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;let f=this,i=()=>f.bufferingItem||f.waitingItem,g=e=>e&&f.getAssetPlayer(e.identifier),m=(t,i,r,s,a)=>{if(t){let e=t[i].start;var n=t.event;return n?"playout"!==i&&n.timelineOccupancy===Hs.Point||(null==(i=g(r))?void 0:i.interstitial)===n&&(e+=i.assetItem.startOffset+i[a]):(r="bufferedPos"===s?o():f[s],e+=r-t.start),e}return 0},o=()=>{var e=f.bufferedPos;return e===Number.MAX_VALUE?t("primary"):Math.max(e,0)},t=e=>{var t;return null!=(t=f.primaryDetails)&&t.live?f.primaryDetails.edge:(null==(t=f.schedule)?void 0:t.durations[e])||0},r=(i,r)=>{var s=f.effectivePlayingItem;if((null==s||null==(s=s.event)||!s.restrictions.skip)&&f.schedule){f.log(`seek to ${i} "${r}"`);var s=f.effectivePlayingItem,a=f.schedule.findItemIndexAtTime(i,r),n=null==(n=f.schedule.items)?void 0:n[a],t=f.getBufferingPlayer(),o=null==t?void 0:t.interstitial,o=null==o?void 0:o.appendInPlace,l=s&&f.itemsMatch(s,n);if(s&&(o||l)){var l=g(f.playingAsset),h=(null==l?void 0:l.media)||f.primaryMedia;if(h){var d="primary"===r?h.currentTime:m(s,r,f.playingAsset,"timelinePos","currentTime"),d=(o?d:h.currentTime)+(i-d);if(0<=d&&(!l||o||d<=l.duration))return void(h.currentTime=d)}}if(n){let e=i;"primary"!==r&&(l=n[r].start,e=n.start+(i-l));h=!f.isInterstitial(n);if(f.isInterstitial(s)&&!s.event.appendInPlace||!h&&!n.event.appendInPlace){if(s){d=f.findItemIndex(s);if(d=p.startOffset&&u{var e=f.effectivePlayingItem;return f.isInterstitial(e)||(e=i(),f.isInterstitial(e))?e:null},e={get bufferedEnd(){var e=i(),t=f.bufferingItem;return t&&t===e&&(m(t,"playout",f.bufferingAsset,"bufferedPos","bufferedEnd")-t.playout.start||(null==(e=f.bufferingAsset)?void 0:e.startOffset))||0},get currentTime(){var e=s(),t=f.effectivePlayingItem;return t&&t===e?m(t,"playout",f.effectivePlayingAsset,"timelinePos","currentTime")-t.playout.start:0},set currentTime(e){var t=s(),i=f.effectivePlayingItem;i&&i===t&&r(e+i.playout.start,"playout")},get duration(){var e=s();return e?e.playout.end-e.playout.start:0},get assetPlayers(){var e=null==(e=s())?void 0:e.event.assetList;return e?e.map(e=>f.getAssetPlayer(e.identifier)):[]},get playingIndex(){var e=null==(e=s())?void 0:e.event;return e&&f.effectivePlayingAsset?e.findAssetIndex(f.effectivePlayingAsset):-1},get scheduleItem(){return s()}};return this.manager={get events(){var e;return(null==(e=f.schedule)||null==(e=e.events)?void 0:e.slice(0))||[]},get schedule(){var e;return(null==(e=f.schedule)||null==(e=e.items)?void 0:e.slice(0))||[]},get interstitialPlayer(){return s()?e:null},get playerQueue(){return f.playerQueue.slice(0)},get bufferingAsset(){return f.bufferingAsset},get bufferingItem(){return i()},get bufferingIndex(){var e=i();return f.findItemIndex(e)},get playingAsset(){return f.effectivePlayingAsset},get playingItem(){return f.effectivePlayingItem},get playingIndex(){var e=f.effectivePlayingItem;return f.findItemIndex(e)},primary:{get bufferedEnd(){return o()},get currentTime(){var e=f.timelinePos;return 0{if(0!==e&&"primary"!==t&&null!=(i=f.schedule)&&i.length){var i=f.schedule.findItemIndexAtTime(e),r=null==(r=f.schedule.items)?void 0:r[i];if(r)return e+(r[t].start-r.start)}return e})((null==(e=f.primaryDetails)?void 0:e.fragmentStart)||0,"integrated")}},skip:()=>{var e,t=f.effectivePlayingItem,i=null==t?void 0:t.event;i&&!i.restrictions.skip&&(e=f.findItemIndex(t),i.appendInPlace?(t=t.playout.start+t.event.duration,r(t+.001,"playout")):f.advanceAfterAssetEnded(i,e,1/0))}}}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var e=this.playingItem,t=null==(t=this.schedule)?void 0:t.items;return!!(this.playbackStarted&&e&&t)&&this.findItemIndex(e)===t.length-1}get playbackStarted(){return null!==this.effectivePlayingItem}get currentTime(){if(null!==this.mediaSelection){var t=this.waitingItem||this.playingItem;if(!this.isInterstitial(t)||t.event.appendInPlace){let e=this.media;t=null==(t=e=!e&&null!=(t=this.bufferingItem)&&null!=(t=t.event)&&t.appendInPlace?this.primaryMedia:e)?void 0:t.currentTime;if(void 0!==t&&G(t))return t}}}get primaryMedia(){var e;return this.media||(null==(e=this.detachedData)?void 0:e.media)||null}isInterstitial(e){return!(null==e||!e.event)}retreiveMediaSource(e,t){e=this.getAssetPlayer(e);e&&this.transferMediaFromPlayer(e,t)}transferMediaFromPlayer(e,t){var i=e.interstitial.appendInPlace,r=e.media;i&&r===this.primaryMedia?(this.bufferingAsset=null,(!t||this.isInterstitial(t)&&!t.event.appendInPlace)&&t&&r?this.detachedData={media:r}:(i=e.transferMedia(),this.log(`transfer MediaSource from ${e} `+B(i)),this.detachedData=i)):t&&r&&(this.shouldPlay||(this.shouldPlay=!r.paused))}transferMediaTo(s,a){if(s.media!==a){let e=null;var n=this.hls;let i=s!==n,r=i&&s.interstitial.appendInPlace;var o=null==(o=this.detachedData)?void 0:o.mediaSource;let t;t=n.media?(r&&(e=n.transferMedia(),this.detachedData=e),"Primary"):o?(l=this.getBufferingPlayer())?(e=l.transferMedia(),""+l):"detached MediaSource":"detached media",e||(o?(e=this.detachedData,this.log("using detachedData: MediaSource "+B(e))):this.detachedData&&n.media!==a||(1<(l=this.playerQueue).length&&l.forEach(e=>{var t;i&&e.interstitial.appendInPlace!==r&&(t=e.interstitial,this.clearInterstitial(e.interstitial,null),t.appendInPlace=!1,t.appendInPlace)&&this.warn("Could not change append strategy for queued assets "+t)}),this.hls.detachMedia(),this.detachedData={media:a}));var n=e&&"mediaSource"in e&&"closed"!==(null==(o=e.mediaSource)?void 0:o.readyState),l=n&&e?e:a,o=(this.log(`${n?"transfering MediaSource":"attaching media"} to ${i?s:"Primary"} from ${t} (media.currentTime: ${a.currentTime})`),this.schedule);l===e&&o&&(n=i&&s.assetId===o.assetIdAtEnd,l.overrides={duration:o.duration,endOfStream:!i||n,cueRemoval:!i}),s.attachMedia(l)}}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){var e,t,i=this.schedule,r=null==i?void 0:i.events;r&&!this.playbackDisabled&&this.media&&(-1===this.bufferedPos&&(this.bufferedPos=0),t=this.timelinePos,e=this.effectivePlayingItem,-1===t?(t=this.hls.startPosition,this.timelinePos=t,0===r.length?this.setSchedulePosition(0):r[0].cue.pre?(this.log(iu("checkStart (preroll)",t)),r=i.findEventIndex(r[0].identifier),this.setSchedulePosition(r)):0<=t||!this.primaryLive?(this.log(iu("checkStart",t)),r=this.timelinePos=0{var e=e.interstitial,t=n.findEventIndex(e.identifier);(t=t.end)&&(e=this.getPrimaryResumption(t,i),this.log(iu("resumePrimary",e)),this.timelinePos=e),this.attachPrimary(e,t)}e&&(e=null==(r=this.schedule)?void 0:r.items)&&(this.log("INTERSTITIALS_PRIMARY_RESUMED "+eu(t)),this.hls.trigger(X.INTERSTITIALS_PRIMARY_RESUMED,{schedule:e.slice(0),scheduleIndex:i}),this.checkBuffer())}getPrimaryResumption(e,t){e=e.start;if(this.primaryLive){var i=this.primaryDetails;if(0===t)return this.hls.startPosition;if(i&&(ei.edge))return this.hls.liveSyncPosition||-1}return e}isAssetBuffered(e){var t=this.getAssetPlayer(e.identifier);return null!=t&&t.hls?t.hls.bufferedToEnd:bn.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=e.timelineStart+(e.duration||0)}attachPrimary(e,t,i){t?this.setBufferingItem(t):this.bufferingItem=this.playingItem,this.bufferingAsset=null;var r,t=this.primaryMedia;t&&((r=this.hls).media?this.checkBuffer():(this.transferMediaTo(r,t),i&&this.startLoadingPrimaryAt(e,i)),i||(this.log(iu("attachPrimary",e)),this.timelinePos=e,this.startLoadingPrimaryAt(e,i)))}startLoadingPrimaryAt(e,t){var i,r=this.hls;!r.loadingEnabled||!r.media||.5e&&(e.setAudioOption(t)||e.setAudioOption(i)))}onSubtitleTrackSwitch(e,t){let i=Hl(t);this.playerQueue.forEach(({hls:e})=>e&&(e.setSubtitleOption(t)||-1!==t.id&&e.setSubtitleOption(i)))}onBufferCodecs(e,t){t=t.tracks;t&&(this.requiredTracks=t)}onBufferAppended(e,t){this.checkBuffer()}onBufferFlushed(e,t){var i=this.playingItem;!i||this.itemsMatch(i,this.bufferingItem)||this.isInterstitial(i)||(i=this.timelinePos,this.bufferedPos=i,this.checkBuffer())}onBufferedToEnd(e){if(this.schedule){var t=this.schedule.events;if(this.bufferedPos{i.event.isAssetPastPlayoutLimit(t)&&this.clearAssetPlayer(e.identifier,null)}),t=i.end+.25,(r=bn.bufferInfo(this.primaryMedia,t,0)).end>t||(r.nextStart||0)>t)&&(this.log(`trim buffered interstitial ${eu(i)} (was ${eu(e)})`),this.attachPrimary(t,null,!0),this.flushFrontBuffer(t))}itemsMatch(e,t){return!!t&&(e===t||e.event&&t.event&&this.eventItemsMatch(e,t)||!e.event&&!t.event&&this.findItemIndex(e)===this.findItemIndex(t))}eventItemsMatch(e,t){return!!t&&(e===t||e.event.identifier===(null==(e=t.event)?void 0:e.identifier))}findItemIndex(e,t){return e&&this.schedule?this.schedule.findItemIndex(e,t):-1}updateSchedule(e=!1){var t,i=this.mediaSelection;i&&null!=(t=this.schedule)&&t.updateSchedule(i,[],e)}checkBuffer(e){var t,i=null==(i=this.schedule)?void 0:i.items;i&&(t=bn.bufferInfo(this.primaryMedia,this.timelinePos,0),e&&(this.bufferedPos=this.timelinePos),e=e||t.len<1,this.updateBufferedPos(t.end,i,e))}updateBufferedPos(t,i,r){var s=this.schedule,a=this.bufferingItem;if(!(this.bufferedPos>t)&&s)if(1===i.length&&this.itemsMatch(i[0],a))this.bufferedPos=t;else{var n=this.playingItem,o=this.findItemIndex(n);let e=s.findItemIndexAtTime(t);if(this.bufferedPos=a.end||null!=(d=h.event)&&d.appendInPlace&&t+.01>=h.start)&&(e=l),this.isInterstitial(a)){var d=a.event;if(1s&&e>o?this.bufferedToItem(h):(l=this.primaryDetails,this.primaryLive&&l&&t>l.edge-l.targetduration&&h.start{e=this.getAssetPlayer(e.identifier);return!(null!=e&&e.bufferedInPlaceToEnd(t))})}setBufferingItem(e){var t=this.bufferingItem,r=this.schedule;if(!this.itemsMatch(e,t)&&r){var{items:i,events:s}=r;if(!i||!s)return t;var a=this.isInterstitial(e),n=this.getBufferingPlayer(),n=(this.bufferingItem=e,this.bufferedPos=Math.max(e.start,Math.min(e.end,this.timelinePos)),n?n.remaining:t?t.end-this.timelinePos:0);if(this.log("INTERSTITIALS_BUFFERED_TO_BOUNDARY "+eu(e)+(t?` (${n.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(a){let i=r.findAssetIndex(e.event,this.bufferedPos);e.event.assetList.forEach((e,t)=>{e=this.getAssetPlayer(e.identifier);e&&(t===i&&e.loadSource(),e.resumeBuffering())})}else this.hls.resumeBuffering(),this.playerQueue.forEach(e=>e.pauseBuffering());this.hls.trigger(X.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:s.slice(0),schedule:i.slice(0),bufferingIndex:this.findItemIndex(e),playingIndex:this.findItemIndex(this.playingItem)})}else this.bufferingItem!==e&&(this.bufferingItem=e);return t}bufferedToItem(e,t=0){var i=this.setBufferingItem(e);this.playbackDisabled||(this.isInterstitial(e)?this.bufferedToEvent(e,t):null!==i&&(this.bufferingAsset=null,(t=this.detachedData)&&t.mediaSource?this.attachPrimary(e.start,e,!0):this.preloadPrimary(e)))}preloadPrimary(e){var t=this.findItemIndex(e),e=this.getPrimaryResumption(e,t);this.startLoadingPrimaryAt(e)}bufferedToEvent(e,t){var e=e.event,i=0===e.assetList.length&&!e.assetListLoader,r=e.cue.once;!i&&r||null!=(i=this.preloadAssets(e,t))&&i.interstitial.appendInPlace&&(r=this.primaryMedia)&&this.bufferAssetPlayer(i,r)}preloadAssets(i,r){var s=i.assetUrl,a=i.assetList.length,n=0===a&&!i.assetListLoader,e=i.cue.once;if(n){n=i.timelineStart;i.appendInPlace&&(o=this.playingItem,this.isInterstitial(o)||(null==o||null==(o=o.nextEvent)?void 0:o.identifier)!==i.identifier||this.flushFrontBuffer(n+.25));let e,t=0;if(!(t=!this.playingItem&&this.primaryLive&&-1===(t=this.hls.startPosition)?this.hls.liveSyncPosition||0:t)||i.cue.pre||i.cue.post||0<(o=t-n)&&(e=Math.round(1e3*o)/1e3),this.log(`Load interstitial asset ${r+1}/${s?1:a} `+i+(e?` live-start: ${t} start-offset: `+e:"")),s)return this.createAsset(i,0,0,n,i.duration,s);var o=this.assetListLoader.loadAssetList(i,e);o&&(i.assetListLoader=o)}else if(!e&&a){for(let e=r;e{this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:t,endOffset:1/0,type:e})}))}getAssetPlayerQueueIndex(t){var i=this.playerQueue;for(let e=0;e{var t,i,r;e.live?(t=new Error("Interstitials MUST be VOD assets "+s),i={fatal:!0,type:Y.OTHER_ERROR,details:q.INTERSTITIAL_ASSET_ITEM_ERROR,error:t},r=(null==(r=this.schedule)?void 0:r.findEventIndex(s.identifier))||-1,this.handleAssetItemError(i,s,r,n,t.message)):(i=e.edge-e.fragmentStart,r=a.duration,(u||null===r||r `+i),a.duration=i,this.updateSchedule()))},f=(e.on(X.LEVEL_UPDATED,(e,{details:t})=>p(t)),e.on(X.LEVEL_PTS_UPDATED,(e,{details:t})=>p(t)),e.on(X.EVENT_CUE_ENTER,()=>this.onInterstitialCueEnter()),(e,t)=>{var i=this.getAssetPlayer(h);i&&t.tracks&&(i.off(X.BUFFER_CODECS,f),i.tracks=t.tracks,t=this.primaryMedia,this.bufferingAsset===i.assetItem)&&t&&!i.media&&this.bufferAssetPlayer(i,t)});e.on(X.BUFFER_CODECS,f);e.on(X.BUFFERED_TO_END,()=>{var e,t=this.getAssetPlayer(h);this.log("buffered to end of asset "+t),t&&this.schedule&&(t=this.schedule.findEventIndex(s.identifier),e=null==(e=this.schedule.items)?void 0:e[t],this.isInterstitial(e))&&this.advanceAssetBuffering(e,a)});r=t=>()=>{var e;this.getAssetPlayer(h)&&this.schedule&&(this.shouldPlay=!0,e=this.schedule.findEventIndex(s.identifier),this.advanceAfterAssetEnded(s,e,t))};return e.once(X.MEDIA_ENDED,r(n)),e.once(X.PLAYOUT_LIMIT_REACHED,r(1/0)),e.on(X.ERROR,(e,t)=>{var i;if(this.schedule)return i=this.getAssetPlayer(h),t.details===q.BUFFER_STALLED_ERROR?null!=i&&i.appendInPlace?void this.handleInPlaceStall(s):(this.onTimeupdate(),void this.checkBuffer(!0)):void this.handleAssetItemError(t,s,this.schedule.findEventIndex(s.identifier),n,`Asset player error ${t.error} `+s)}),e.on(X.DESTROYING,()=>{var e,t;this.getAssetPlayer(h)&&this.schedule&&(e=new Error("Asset player destroyed unexpectedly "+h),t={fatal:!0,type:Y.OTHER_ERROR,details:q.INTERSTITIAL_ASSET_ITEM_ERROR,error:e},this.handleAssetItemError(t,s,this.schedule.findEventIndex(s.identifier),n,e.message))}),this.log("INTERSTITIAL_ASSET_PLAYER_CREATED "+Jc(a)),this.hls.trigger(X.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:a,assetListIndex:n,event:s,player:e}),e}clearInterstitial(e,t){this.clearAssetPlayers(e,t),e.reset()}clearAssetPlayers(e,t){e.assetList.forEach(e=>{this.clearAssetPlayer(e.identifier,t)})}resetAssetPlayer(e){var t=this.getAssetPlayerQueueIndex(e);-1!==t&&(this.log(`reset asset player "${e}" after error`),e=this.playerQueue[t],this.transferMediaFromPlayer(e,null),e.resetDetails())}clearAssetPlayer(e,t){var i,e=this.getAssetPlayerQueueIndex(e);-1!==e&&(i=this.playerQueue[e],this.log(`clear ${i} toSegment: `+(t&&eu(t))),this.transferMediaFromPlayer(i,t),this.playerQueue.splice(e,1),i.destroy())}emptyPlayerQueue(){for(var e;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[]}startAssetPlayer(e,t,i,r,s){var{interstitial:a,assetItem:n,assetId:o}=e,l=a.assetList.length,h=this.playingAsset;this.endedAsset=null,this.playingAsset=n,h&&h.identifier===o||(h&&(this.clearAssetPlayer(h.identifier,i[r]),delete h.error),this.log(`INTERSTITIAL_ASSET_STARTED ${t+1}/${l} `+Jc(n)),this.hls.trigger(X.INTERSTITIAL_ASSET_STARTED,{asset:n,assetListIndex:t,event:a,schedule:i.slice(0),scheduleIndex:r,player:e})),this.bufferAssetPlayer(e,s)}bufferAssetPlayer(e,t){if(this.schedule){var{interstitial:i,assetItem:r}=e,s=this.schedule.findEventIndex(i.identifier),a=null==(a=this.schedule.items)?void 0:a[s];if(a){e.loadSource(),this.setBufferingItem(a),this.bufferingAsset=r;var a=this.getBufferingPlayer();if(a!==e){var n=i.appendInPlace;if(!n||!1!==(null==a?void 0:a.interstitial.appendInPlace)){a=(null==a?void 0:a.tracks)||(null==(a=this.detachedData)?void 0:a.tracks)||this.requiredTracks;if(n&&r!==this.playingAsset){if(!e.tracks)return void this.log("Waiting for track info before buffering "+e);if(a&&!zo(a,e.tracks))return n=new Error(`Asset ${Jc(r)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(a)}')`),a={fatal:!0,type:Y.OTHER_ERROR,details:q.INTERSTITIAL_ASSET_ITEM_ERROR,error:n},r=i.findAssetIndex(r),void this.handleAssetItemError(a,i,s,r,n.message)}this.transferMediaTo(e,t)}}}}}handleInPlaceStall(e){var t,i,r,s,a,n=this.schedule,o=this.primaryMedia;n&&o&&(a=o.currentTime,t=n.findAssetIndex(e,a),r=e.assetList[t])&&(i=this.getAssetPlayer(r.identifier))&&(r=i.currentTime||a-r.timelineStart,s=i.duration-r,this.warn(`Stalled at ${r} of ${r+s} in ${i} ${e} (media.currentTime: ${a})`),r)&&(s/o.playbackRate<.5||i.bufferedInPlaceToEnd(o))&&i.hls&&(a=n.findEventIndex(e.identifier),this.advanceAfterAssetEnded(e,a,t))}advanceInPlace(e){var t=this.primaryMedia;t&&t.currentTime!e.error))for(let e=r;e{var i=parseFloat(e.DURATION);this.createAsset(n,t,s,r+s,i,e.URI),s+=i}),n.duration=s,this.log(`Loaded asset-list with duration: ${s} (was: ${l}) `+n);var l=this.waitingItem,l=(null==l?void 0:l.event.identifier)===o,h=(this.updateSchedule(),null==(a=this.bufferingItem)?void 0:a.event);if(l){var l=this.schedule.findEventIndex(o),d=null==(d=this.schedule.items)?void 0:d[l];if(d){if(!this.playingItem&&this.timelinePos>d.end)if(this.schedule.findItemIndexAtTime(this.timelinePos)!==l)return n.error=new Error(`Interstitial ${t.length?"no longer within playback range":"asset-list is empty"} ${this.timelinePos} `+n),this.log(n.error.message),this.updateSchedule(!0),void this.primaryFallback(n);this.setBufferingItem(d)}this.setSchedulePosition(l)}else(null==h?void 0:h.identifier)===o&&(t=n.assetList[0])&&(d=this.getAssetPlayer(t.identifier),h.appendInPlace?(l=this.primaryMedia,d&&l&&this.bufferAssetPlayer(d,l)):d&&d.loadSource())}}onError(e,t){if(this.schedule)switch(t.details){case q.ASSET_LIST_PARSING_ERROR:case q.ASSET_LIST_LOAD_ERROR:case q.ASSET_LIST_LOAD_TIMEOUT:var i=t.interstitial;i&&(this.updateSchedule(!0),this.primaryFallback(i));break;case q.BUFFER_STALLED_ERROR:i=this.endedItem||this.waitingItem||this.playingItem;this.isInterstitial(i)&&i.event.appendInPlace?this.handleInPlaceStall(i.event):(this.log(`Primary player stall @${this.timelinePos} bufferedPos: `+this.bufferedPos),this.onTimeupdate(),this.checkBuffer(!0))}}}class sv extends Em{constructor(e,t,i){super(e,t,i,"subtitle-stream-controller",$o),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();var e=this.hls;e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(X.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();var e=this.hls;e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(X.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(e,t){this.stopLoad(),this.state=k.IDLE,this.setInterval(500),this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(e,t){this.tracksBuffered=[],super.onMediaDetaching(e,t)}onLevelLoaded(e,t){this.mainDetails=t.details}onSubtitleFragProcessed(e,i){var{frag:i,success:r}=i;if(this.fragContextChanged(i)||(en(i)&&(this.fragPrevious=i),this.state=k.IDLE),r){var s=this.tracksBuffered[this.currentTrackId];if(s){let t;var a=i.start;for(let e=0;e=s[e].start&&a<=s[e].end){t=s[e];break}r=i.start+i.duration;t?t.end=r:(t={start:a,end:r},s.push(t)),this.fragmentTracker.fragBuffered(i),this.fragBufferedComplete(i,null),this.media&&this.tick()}}}onBufferFlushing(e,t){var{startOffset:r,endOffset:s}=t;if(0===r&&s!==Number.POSITIVE_INFINITY){let i=s-1;i<=0||(t.endOffsetSubtitles=Math.max(0,i),this.tracksBuffered.forEach(t=>{for(let e=0;enew sm(e)):(this.tracksBuffered=[],this.levels=t.map(e=>{e=new sm(e);return this.tracksBuffered[e.id]=[],e}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,$o),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,t){this.currentTrackId=t.id,null!=(t=this.levels)&&t.length&&-1!==this.currentTrackId?(null!=(t=this.levels[this.currentTrackId])&&t.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,t&&this.state!==k.STOPPED&&this.setInterval(500)):this.clearInterval()}onSubtitleTrackLoaded(e,t){var{currentTrackId:i,levels:r}=this,{details:s,id:a}=t;if(r){var n=r[a];if(!(r.length<=a)&&n){this.log(`Subtitle track ${a} loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""},duration:`+s.totalduration),this.mediaBuffer=this.mediaBufferTimeRanges;let e=0;if(s.live||null!=(r=n.details)&&r.live){if(s.deltaUpdateFailed)return;r=this.mainDetails;if(!r)return void(this.startFragRequested=!1);var o,l=r.fragments[0];n.details?0===(e=this.alignPlaylists(s,n.details,null==(o=this.levelLastLoaded)?void 0:o.details))&&l&&dd(s,e=l.start):s.hasProgramDateTime&&r.hasProgramDateTime?(Td(s,r),e=s.fragmentStart):l&&dd(s,e=l.start),r&&!this.startFragRequested&&this.setStartPosition(r,e)}n.details=s,this.levelLastLoaded=n,a===i&&(this.hls.trigger(X.SUBTITLE_TRACK_UPDATED,{details:s,id:a,groupId:t.groupId}),this.tick(),s.live)&&!this.fragCurrent&&this.media&&this.state===k.IDLE&&!Ql(null,s.fragments,this.media.currentTime,0)&&(this.warn("Subtitle playlist not aligned with playback"),n.details=void 0)}}else this.warn("Subtitle tracks were reset while loading level "+a)}_handleFragmentLoadComplete(e){let{frag:r,payload:t}=e;e=r.decryptdata;let s=this.hls;if(!this.fragContextChanged(r)&&t&&0{throw s.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:r}),e}).then(e=>{var t=performance.now();s.trigger(X.FRAG_DECRYPTED,{frag:r,payload:e,stats:{tstart:i,tdecrypt:t}})}).catch(e=>{this.warn(e.name+": "+e.message),this.state=k.IDLE})}}doTick(){if(this.media){if(this.state===k.IDLE){var{currentTrackId:t,levels:i}=this,t=null==i?void 0:i[t];if(t&&i.length&&t.details&&!this.waitForLive(t)){var i=this.config,r=this.getLoadPosition(),{end:r,len:s}=bn.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],r,i.maxBufferHole),a=t.details,n=this.hls.maxBufferLength+a.levelTargetDuration;if(!(n{if(i-1<(t>>>=0))throw new DOMException(`Failed to execute '${e}' on 'TimeRanges': The index provided (${t}) is greater than the maximum bound (${i})`);return r[t][e]};this.buffered={get length(){return r.length},end(e){return t("end",e,r.length)},start(e){return t("start",e,r.length)}}}}let zs={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},Ks=e=>String.fromCharCode(zs[e]||e),Ws={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},Ys={17:2,18:4,21:6,22:8,23:10,19:13,20:15},qs={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},Xs={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Qs=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class nv{constructor(){this.time=null,this.verboseLevel=0}log(e,t){this.verboseLevel>=e&&(t="function"==typeof t?t():t,H.log(this.time+` [${e}] `+t))}}function ru(t){var i=[];for(let e=0;e"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))}clearFromPos(e){let t;for(t=e;t<100;t++)this.chars[t].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){var t=[];let i=!0;for(let e=0;e<100;e++){var r=this.chars[e].uchar;" "!==r&&(i=!1),t.push(r)}return i?"":t.join("")}setPenStyles(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)}}class dv{constructor(t){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let e=0;e<15;e++)this.rows.push(new hv(t));this.logger=t}reset(){for(let e=0;e<15;e++)this.rows[e].clear();this.currRow=14}equals(t){let i=!0;for(let e=0;e<15;e++)if(!this.rows[e].equals(t.rows[e])){i=!1;break}return i}copy(t){for(let e=0;e<15;e++)this.rows[e].copy(t.rows[e])}isEmpty(){let t=!0;for(let e=0;e<15;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(e){this.rows[this.currRow].insertChar(e)}setPen(e){this.rows[this.currRow].setPenStyles(e)}moveCursor(e){this.rows[this.currRow].moveCursor(e)}setCursor(e){this.logger.log(2,"setCursor: "+e),this.rows[this.currRow].setCursor(e)}setPAC(e){this.logger.log(2,()=>"pacData = "+B(e));let t=e.row-1;if(this.nrRollUpRows&&t"bkgData = "+B(e)),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){var e;null===this.nrRollUpRows?this.logger.log(3,"roll_up but nrRollUpRows not set yet"):(this.logger.log(1,()=>this.getDisplayText()),e=this.currRow+1-this.nrRollUpRows,(e=this.rows.splice(e,1)[0]).clear(),this.rows.splice(this.currRow,0,e),this.logger.log(2,"Rolling up"))}getDisplayText(t){t=t||!1;var i=[];let e="";var r;for(let e=0;e<15;e++){var s=this.rows[e].getTextString();s&&(r=e+1,i.push(t?"Row "+r+": '"+s+"'":s.trim()))}return e=0"MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(t){for(let e=0;ee+": "+this.writeScreen.getDisplayText(!0)),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory)&&this.outputDataUpdate()}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){var e;this.logger.log(2,"EOC - End Of Caption"),"MODE_POP-ON"===this.mode&&(e=this.displayedMemory,this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())),this.outputDataUpdate(!0)}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)}ccMIDROW(e){var t={flash:!1};t.underline=e%2==1,t.italics=46<=e,t.italics?t.foreground="white":(e=Math.floor(e/2)-16,t.foreground=["white","green","blue","cyan","red","yellow","magenta"][e]),this.logger.log(2,"MIDROW: "+B(t)),this.writeScreen.setPen(t)}outputDataUpdate(e=!1){var t=this.logger.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(e){!this.outputFilter||this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e)}}class uv{constructor(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;var r=this.logger=new nv;this.channels=[null,new cv(e,t,r),new cv(e+1,i,r)]}getHandler(e){return this.channels[e].getHandler()}setHandler(e,t){this.channels[e].setHandler(t)}addData(e,a){this.logger.time=e;for(let s=0;s"["+ru([a[s],a[s+1]])+"] -> ("+ru([e,t])+")");var n=this.cmdHistory;if(16<=e&&e<=31){if(o=e,l=t,(h=n).a===o&&h.b===l){su(null,null,n),this.logger.log(3,()=>"Repeated command ("+ru([e,t])+") is dropped");continue}su(e,t,this.cmdHistory),i=(i=(i=(i=this.parseCmd(e,t))||this.parseMidrow(e,t))||this.parsePAC(e,t))||this.parseBackgroundAttributes(e,t)}else su(null,null,n);i||(r=this.parseChars(e,t))&&((o=this.currentChannel)&&0"Couldn't parse cleaned data "+ru([e,t])+" orig: "+ru([a[s],a[s+1]]))}}var o,l,h}parseCmd(e,t){var i,r;return((20===e||28===e||21===e||29===e)&&32<=t&&t<=47||(23===e||31===e)&&33<=t&&t<=35)&&(r=this.channels[i=20===e||21===e||23===e?1:2],20===e||21===e||28===e||29===e?32===t?r.ccRCL():33===t?r.ccBS():34===t?r.ccAOF():35===t?r.ccAON():36===t?r.ccDER():37===t?r.ccRU(2):38===t?r.ccRU(3):39===t?r.ccRU(4):40===t?r.ccFON():41===t?r.ccRDC():42===t?r.ccTR():43===t?r.ccRTD():44===t?r.ccEDM():45===t?r.ccCR():46===t?r.ccENM():47===t&&r.ccEOC():r.ccTO(t-32),this.currentChannel=i,!0)}parseMidrow(e,t){let i=0;var r;return(17===e||25===e)&&32<=t&&t<=47&&((i=17===e?1:2)!==this.currentChannel?(this.logger.log(0,"Mismatch channel in midrow parsing"),!1):!!(r=this.channels[i])&&(r.ccMIDROW(t),this.logger.log(3,()=>"MIDROW ("+ru([e,t])+")"),!0))}parsePAC(e,t){let i;var r;return((17<=e&&e<=23||25<=e&&e<=31)&&64<=t&&t<=127||(16===e||24===e)&&64<=t&&t<=95)&&(r=e<=23?1:2,i=(64<=t&&t<=95?1==r?Ws:qs:1==r?Ys:Xs)[e],!!(e=this.channels[r]))&&(e.setPAC(this.interpretPAC(i,t)),this.currentChannel=r,!0)}interpretPAC(e,t){let i;e={color:null,italics:!1,indent:null,underline:!1,row:e};return i=95"Special char '"+Ks(e)+"' in channel "+i),r=[e]}else 32<=e&&e<=127&&(r=0===t?[e]:[e,t]);return r&&this.logger.log(3,()=>"Char codes = "+ru(r).join(",")),r}parseBackgroundAttributes(e,t){var i,r;return((16===e||24===e)&&32<=t&&t<=47||(23===e||31===e)&&45<=t&&t<=47)&&(r={},16===e||24===e?(i=Math.floor((t-32)/2),r.background=Qs[i],t%2==1&&(r.background=r.background+"_semi")):45===t?r.background="transparent":(r.foreground="black",47===t&&(r.underline=!0)),this.channels[e<=23?1:2].setBkgData(r),!0)}reset(){for(let e=0;e{if(null!=$r&&$r.VTTCue)return self.VTTCue;let b=["","lr","rl"],t=["start","middle","end","left","right"];function E(e,t){return"string"==typeof t&&!!Array.isArray(e)&&(t=t.toLowerCase(),!!~e.indexOf(t))&&t}function T(e){return E(t,e)}function w(e){let t=1;for(;t/gi,"\n")}class gv{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new pv,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(e){let r=this;function i(){var e=r.buffer;let t=0;for(e=lu(e);t{let t=i;function e(){var e=nu(i);if(null===e)throw new Error("Malformed timestamp: "+t);return i=i.replace(/^[^\sa-zA-Z-]+/,""),e}function r(){i=i.replace(/^\s+/,"")}if(r(),s.startTime=e(),r(),"--\x3e"!==i.slice(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+t);i=i.slice(3),r(),s.endTime=e(),r();{var n=i;let r=new fv,e=(ou(n,function(t,i){let e;switch(t){case"region":for(let e=a.length-1;0<=e;e--)if(a[e].id===i){r.set(t,a[e].region);break}break;case"vertical":r.alt(t,i,["rl","lr"]);break;case"line":e=i.split(","),r.integer(t,e[0]),r.percent(t,e[0])&&r.set("snapToLines",!1),r.alt(t,e[0],["auto"]),2===e.length&&r.alt("lineAlign",e[1],["start",Js,"end"]);break;case"position":e=i.split(","),r.percent(t,e[0]),2===e.length&&r.alt("positionAlign",e[1],["start",Js,"end","line-left","line-right","auto"]);break;case"size":r.percent(t,i);break;case"align":r.alt(t,i,["start",Js,"end","left","right"])}},/:/,/\s/),s.region=r.get("region",null),s.vertical=r.get("vertical",""),r.get("line","auto")),t=("auto"===e&&-1===Zs.line&&(e=-1),s.line=e,s.lineAlign=r.get("lineAlign","start"),s.snapToLines=r.get("snapToLines",!0),s.size=r.get("size",100),s.align=r.get("align",Js),r.get("position","auto"));"auto"===t&&50===Zs.position&&(t="start"===s.align||"left"===s.align?0:"end"===s.align||"right"===s.align?100:50),s.position=t}})(e,r.cue,r.regionList)}catch(e){r.cue=null,r.state="BADCUE";continue}r.state="CUETEXT";continue;case"CUETEXT":var a=-1!==e.indexOf("--\x3e");if(!e||a&&(t=!0)){r.oncue&&r.cue&&r.oncue(r.cue),r.cue=null,r.state="ID";continue}if(null===r.cue)continue;r.cue.text&&(r.cue.text+="\n"),r.cue.text+=e;continue;case"BADCUE":e||(r.state="ID")}}}catch(e){"CUETEXT"===r.state&&r.cue&&r.oncue&&r.oncue(r.cue),r.cue=null,r.state="INITIAL"===r.state?"BADWEBVTT":"BADCUE"}return this}flush(){var t=this;try{if(!t.cue&&"HEADER"!==t.state||(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state||"BADWEBVTT"===t.state)throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}function hu(e,t,i=0){return e.slice(i,i+t.length)===t}let ea=/\r\n|\n\r|\n|\r/g;function du(e,t,i){return qc(e.toString())+qc(t.toString())+qc(i)}function cu(e,o,l,h,d,t,i){let r=new gv;var s,a,e=Ko(new Uint8Array(e)).trim().replace(ea,"\n").split("\n");let c=[],u=o?([s,a=1]=[o.baseTime,o.timescale],nc(s,os,1/a)):0,n="00:00.000",p=0,f=0,g,m=!0;r.oncue=function(e){var i=l[h];let t=l.ccOffset;var r,s=(p-u)/9e4;if(null!=i&&i.new)if(void 0!==f)t=l.ccOffset=i.start;else{var a=l;i=h;var n=s;let e=a[i],t=a[e.prevCC];if(!t||!t.new&&e.new)a.ccOffset=a.presentationOffset=e.start,e.new=!1;else{for(;null!=(r=t)&&r.new;)a.ccOffset+=e.start-t.start,e.new=!1,t=a[(e=t).prevCC];a.presentationOffset=n}}if(s){if(!o)return void(g=new Error("Missing initPTS for VTT MPEGTS"));t=s-l.presentationOffset}i=e.endTime-e.startTime,n=dc(9e4*(e.startTime+t-f),9e4*d)/9e4,e.startTime=Math.max(n,0),e.endTime=Math.max(n+i,0),s=e.text.trim();e.text=decodeURIComponent(encodeURIComponent(s)),e.id||(e.id=du(e.startTime,e.endTime,s)),0{if(m){if(hu(e,"X-TIMESTAMP-MAP=")){m=!1,e.slice(16).split(",").forEach(e=>{hu(e,"LOCAL:")?n=e.slice(6):hu(e,"MPEGTS:")&&(p=parseInt(e.slice(7)))});try{f=(e=>{var t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),r=parseInt(e.slice(-9,-7)),s=9Ko(e));[i,a,n=1,o=!1]=[i.baseTime,1,i.timescale];let t=nc(i,a,1/n,o);try{e.forEach(e=>r(((e,a)=>{let t=new DOMParser,i=t.parseFromString(e,"text/xml"),r=i.getElementsByTagName("tt")[0];if(!r)throw new Error("Invalid ttml");let s={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},n=Object.keys(s).reduce((e,t)=>(e[t]=r.getAttribute("ttp:"+t)||s[t],e),{}),o="preserve"!==r.getAttribute("xml:space"),l=fu(pu(r,"styling","style")),h=fu(pu(r,"layout","region")),d=pu(r,"body","[begin]");return[].map.call(d,e=>{var t=function r(e,s){return[].slice.call(e.childNodes).reduce((e,t,i)=>"br"===t.nodeName&&i?e+"\n":null!=(i=t.childNodes)&&i.length?r(t,s):s?e+t.textContent.trim().replace(/\s+/g," "):e+t.textContent,"")}(e,o);if(!t||!e.hasAttribute("begin"))return null;var i=vu(e.getAttribute("begin"),n),r=vu(e.getAttribute("dur"),n);let s=vu(e.getAttribute("end"),n);if(null===i)throw mu(e);if(null===s){if(null===r)throw mu(e);s=i+r}r=new au(i-a,s-a,t),r.id=du(r.startTime,r.endTime,r.text),i=h[e.getAttribute("region")],t=((r,s,e)=>{let a="http://www.w3.org/ns/ttml#styling",n=null,t=null!=r&&r.hasAttribute("style")?r.getAttribute("style"):null;return t&&e.hasOwnProperty(t)&&(n=e[t]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((e,t)=>{var i=gu(s,a,t)||gu(r,a,t)||gu(n,a,t);return i&&(e[t]=i),e},{})})(i,l[e.getAttribute("style")],l),i=t.textAlign;return i&&((e=sa[i])&&(r.lineAlign=e),r.align=i),Qa(r,t),r}).filter(e=>null!==e)})(e,t)))}catch(e){s(e)}}}function pu(e,t,i){e=e.getElementsByTagName(t)[0];return e?[].slice.call(e.querySelectorAll(i)):[]}function fu(e){return e.reduce((e,t)=>{var i=t.getAttribute("xml:id");return i&&(e[i]=t),e},{})}function gu(e,t,i){return e&&e.hasAttributeNS(t,i)?e.getAttributeNS(t,i):null}function mu(e){return new Error("Could not parse ttml timestamp "+e)}function vu(e,t){if(!e)return null;let i=nu(e);var r,s,a;return null===i&&(ia.test(e)?i=(r=e,s=t,r=ia.exec(r),a=(0|r[4])+(0|r[5])/s.subFrameRate,3600*(0|r[1])+60*(0|r[2])+(0|r[3])+a/s.frameRate):ra.test(e)&&(i=((e,t)=>{var e=ra.exec(e),i=Number(e[1]);switch(e=e[2]){case"h":return 3600*i;case"m":return 60*i;case"ms":return 1e3*i;case"f":return i/t.frameRate;case"t":return i/t.tickRate}return i})(e,t))),i}class mv{constructor(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}dispatchCue(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}class vv{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Eu(),this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_LOADED,this.onFragLoaded,this),e.on(X.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(X.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(X.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){var e=this.hls;e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_LOADED,this.onFragLoaded,this),e.off(X.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(X.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(X.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){var e=new mv(this,"textTrack1"),t=new mv(this,"textTrack2"),i=new mv(this,"textTrack3"),r=new mv(this,"textTrack4");this.cea608Parser1=new uv(1,e,t),this.cea608Parser2=new uv(3,i,r)}addCues(e,t,i,r,s){let a=!1;for(let e=s.length;e--;){var n=s[e],o=(l=n[0],o=n[1],h=t,Math.min(o,i)-Math.max(l,h));if(0<=o&&(n[0]=Math.min(n[0],t),n[1]=Math.max(n[1],i),a=!0,.5{this.initPTS[e.frag.cc]?this.onFragLoaded(X.FRAG_LOADED,e):this.hls.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e.frag,error:new Error("Subtitle discontinuity domain does not match main")})}))}getExistingTrack(t,i){var r=this.media;if(r)for(let e=0;e{Kc(t[e]),delete t[e]}),this.nonNativeCaptionsTracks={}}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Eu(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){var e=this.media;if(e){var t=e.textTracks;if(t)for(let e=0;ee.textCodec===ta);if(this.config.enableWebVTT||i&&this.config.enableIMSC1)if(mc(this.tracks,t))this.tracks=t;else if(this.textTracks=[],this.tracks=t,this.config.renderTextTracksNatively){var i=this.media;let s=i?Yc(i.textTracks):null;this.tracks.forEach((i,e)=>{let r;if(s){let t=null;for(let e=0;enull!==e).map(e=>e.label)).length&&this.hls.logger.warn(`Media element contains unused subtitle tracks: ${t.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}else this.tracks.length&&(i=this.tracks.map(e=>({label:e.name,kind:e.type.toLowerCase(),default:e.default,subtitleTrack:e})),this.hls.trigger(X.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:i}))}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(e=>{var t=/(?:CC|SERVICE)([1-4])/.exec(e.instreamId);t&&(t="textTrack"+t[1],t=this.captionsProperties[t])&&(t.label=e.name,e.lang&&(t.languageCode=e.lang),t.media=e)})}closedCaptionsForLevel(e){e=this.hls.levels[e.level];return null==e?void 0:e.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){var i,r,s,a,n;this.enabled&&t.frag.type===qa&&({cea608Parser1:i,cea608Parser2:r,lastSn:s}=this,{cc:a,sn:n}=t.frag,t=null!=(t=null==(t=t.part)?void 0:t.index)?t:-1,i&&r&&(n!==s+1||n===s&&t!==this.lastPartIndex+1||a!==this.lastCc)&&(i.reset(),r.reset()),this.lastCc=a,this.lastSn=n,this.lastPartIndex=t)}onFragLoaded(e,t){var i,r,{frag:s,payload:a}=t;s.type===$o&&(a.byteLength?(i=s.decryptdata,r="stats"in t,null!=i&&i.encrypted&&!r||(i=this.tracks[s.level],(r=this.vttCCs)[s.cc]||(r[s.cc]={start:s.start,prevCC:this.prevCC,new:!0},this.prevCC=s.cc),i&&i.textCodec===ta?this._parseIMSC1(s,a):this._parseVTTs(t))):this.hls.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:s,error:new Error("Empty subtitle payload")}))}_parseIMSC1(t,e){let i=this.hls;uu(e,this.initPTS[t.cc],e=>{this._appendCues(e,t.level),i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})},e=>{i.logger.log("Failed to parse IMSC1: "+e),i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:e})})}_parseVTTs(r){let e,{frag:s,payload:a}=r,{initPTS:t,unparsedVttFrags:n}=this,o=t.length-1;if(t[s.cc]||-1!=o){let i=this.hls;cu(null!=(e=s.initSegment)&&e.data?gl(s.initSegment.data,new Uint8Array(a)).buffer:a,this.initPTS[s.cc],this.vttCCs,s.cc,s.start,e=>{this._appendCues(e,s.level),i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:s})},e=>{var t="Missing initPTS for VTT MPEGTS"===e.message;t?n.push(r):this._fallbackToIMSC1(s,a),i.logger.log("Failed to parse VTT cue: "+e),t&&o>s.cc||i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:s,error:e})})}else n.push(r)}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||uu(t,this.initPTS[e.cc],()=>{i.textCodec=ta,this._parseIMSC1(e,t)},()=>{i.textCodec="wvtt"})}_appendCues(e,i){var t=this.hls;if(this.config.renderTextTracksNatively){let t=this.textTracks[i];t&&"disabled"!==t.mode&&e.forEach(e=>zc(t,e))}else{var r=this.tracks[i];r&&(r=r.default?"default":"subtitles"+i,t.trigger(X.CUES_PARSED,{type:"subtitles",cues:e,track:r}))}}onFragDecrypted(e,t){var i=t.frag;i.type===$o&&this.onFragLoaded(X.FRAG_LOADED,t)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,t){if(this.enabled&&this.config.enableCEA708Captions){var{frag:t,samples:i}=t;if(t.type!==qa||"NONE"!==this.closedCaptionsForLevel(t))for(let e=0;eWc(t[e],i,r))}if(this.config.renderTextTracksNatively&&0===i&&void 0!==s){let t=this.textTracks;Object.keys(t).forEach(e=>Wc(t[e],i,s))}}}extractCea608Data(t){var i=[[],[]],r=31&t[0];let s=2;for(let e=0;e"auto"===e.line||"auto"===t.line?0:8zc(t,e))),n}},oa=/(\d+)-(\d+)\/(\d+)/;class yv{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||Tu,this.controller=new self.AbortController,this.stats=new Jg}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(s,a,e){let n=this.stats;if(n.loading.start)throw new Error("Loader can only be used once.");n.loading.start=self.performance.now();var t=((e,t)=>(t={method:"GET",mode:"cors",credentials:"same-origin",signal:t,headers:new self.Headers(Qa({},e.headers))},e.rangeEnd&&t.headers.set("Range","bytes="+e.rangeStart+"-"+String(e.rangeEnd-1)),t))(s,this.controller.signal);let o="arraybuffer"===s.responseType,l=o?"byteLength":"length",{maxTimeToFirstByteMs:i,maxLoadTimeMs:h}=a.loadPolicy;this.context=s,this.config=a,this.callbacks=e,this.request=this.fetchSetup(s,t),self.clearTimeout(this.requestTimeout),a.timeout=i&&G(i)?i:h,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(n,s,this.response))},a.timeout),(gc(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then(e=>{this.response=this.loader=e;var t,i=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(this.requestTimeout),a.timeout=h,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(n,s,this.response))},h-(i-n.loading.start)),!e.ok)throw{status:r,statusText:t}=e,new bv(t||"fetch, bad network response",r,e);n.loading.first=i,n.total=(e=>{var t=e.get("Content-Range");if(t){t=(e=>{if(e=oa.exec(e))return parseInt(e[2])-parseInt(e[1])+1})(t);if(G(t))return t}if(t=e.get("Content-Length"))return parseInt(t)})(e.headers)||n.total;var r=null==(t=this.callbacks)?void 0:t.onProgress;return r&&G(a.highWaterMark)?this.loadProgressively(e,n,s,a.highWaterMark,r):o?e.arrayBuffer():"json"===s.responseType?e.json():e.text()}).then(e=>{var t=this.response;if(!t)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);var i=e[l],i=(i&&(n.loaded=n.total=i),{url:t.url,data:e,code:t.status}),r=null==(r=this.callbacks)?void 0:r.onProgress;r&&!G(a.highWaterMark)&&r(n,s,e,t),null!=(r=this.callbacks)&&r.onSuccess(i,n,s,t)}).catch(e=>{var t,i,r;self.clearTimeout(this.requestTimeout),n.aborted||(i=e&&e.code||0,r=e?e.message:null,null!=(t=this.callbacks)&&t.onError({code:i,text:r},s,e?e.details:null,n))})}getCacheAge(){let e=null;var t;return this.response&&(t=this.response.headers.get("age"),e=t?parseFloat(t):null),e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(i,r,s,a=0,n){let o=new Tm,e=i.body.getReader(),l=()=>e.read().then(e=>{var t;return e.done?(o.dataLength&&n(r,s,o.flush().buffer,i),Promise.resolve(new ArrayBuffer(0))):(t=(e=e.value).length,r.loaded+=t,t=a&&n(r,s,o.flush().buffer,i)):n(r,s,e.buffer,i),l())}).catch(()=>Promise.reject());return l()}}function Tu(e,t){return new self.Request(e.url,t)}class bv extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i}}let la=/^age:\s*[\d.]+\s*$/im;class Ev{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new Jg,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState)&&(this.stats.aborted=!0,e.abort())}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:e,context:s}=this;if(e&&s){let i=this.loader=new self.XMLHttpRequest,r=this.stats,t=(r.loading.first=0,r.loaded=0,r.aborted=!1,this.xhrSetup);t?Promise.resolve().then(()=>{if(this.loader===i&&!this.stats.aborted)return t(i,s.url)}).catch(e=>{if(this.loader===i&&!this.stats.aborted)return i.open("GET",s.url,!0),t(i,s.url)}).then(()=>{this.loader!==i||this.stats.aborted||this.openAndSendXhr(i,s,e)}).catch(e=>{var t;null!=(t=this.callbacks)&&t.onError({code:i.status,text:e.message},s,i,r)}):this.openAndSendXhr(i,s,e)}}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,!0);var r=t.headers,{maxTimeToFirstByteMs:s,maxLoadTimeMs:a}=i.loadPolicy;if(r)for(var n in r)e.setRequestHeader(n,r[n]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=s&&G(s)?s:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),e.send()}readystatechange(){var{context:e,loader:t,stats:i}=this;if(e&&t){var r=t.readyState,s=this.config;if(!i.aborted&&2<=r&&(0===i.loading.first&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),s.timeout!==s.loadPolicy.maxLoadTimeMs)&&(self.clearTimeout(this.requestTimeout),s.timeout=s.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),s.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start))),4===r)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;var r=t.status,a="text"===t.responseType?t.responseText:null;if(200<=r&&r<300){var a=null!=a?a:t.response;if(null!=a)return i.loading.end=Math.max(self.performance.now(),i.loading.first),n="arraybuffer"===t.responseType?a.byteLength:a.length,i.loaded=i.total=n,i.bwEstimate=8e3*i.total/(i.loading.end-i.loading.first),(n=null==(n=this.callbacks)?void 0:n.onProgress)&&n(i,e,a,t),n={url:t.responseURL,data:a,code:r},void(null!=(a=this.callbacks)&&a.onSuccess(n,i,e,t))}var n,a=s.loadPolicy.errorRetry;nh(a,i.retry,!1,{url:e.url,data:void 0,code:r})?this.retry(a):(H.error(r+" while loading "+e.url),null!=(n=this.callbacks)&&n.onError({code:r,text:t.statusText},e,t,i))}}}loadtimeout(){var e;this.config&&(nh(e=this.config.loadPolicy.timeoutRetry,this.stats.retry,!0)?this.retry(e):(H.warn("timeout while loading "+(null==(e=this.context)?void 0:e.url)),(e=this.callbacks)&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))))}retry(e){var{context:t,stats:i}=this;this.retryDelay=sh(e,i.retry),i.retry++,H.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${null==t?void 0:t.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)}getCacheAge(){let e=null;var t;return this.loader&&la.test(this.loader.getAllResponseHeaders())&&(t=this.loader.getResponseHeader("age"),e=t?parseFloat(t):null),e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}}let ha=Za(Za({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:6e7,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:!1,loader:Ev,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:am,bufferController:zm,capLevelController:Km,errorController:nm,fpsController:class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(X.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(X.MEDIA_DETACHING,this.onMediaDetaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,t){var i=this.hls.config;i.capLevelOnFPSDrop&&(t=t.media instanceof self.HTMLVideoElement?t.media:null,(this.media=t)&&"function"==typeof t.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod))}onMediaDetaching(){this.media=null}checkFPS(e,t,i){var r,s,a,n,o=performance.now();t&&(this.lastTime&&(n=o-this.lastTime,r=i-this.lastDroppedFrames,s=t-this.lastDecodedFrames,n=1e3*r/n,(a=this.hls).trigger(X.FPS_DROP,{currentDropped:r,currentDecoded:s,totalDroppedFrames:i}),0a.config.fpsDroppedMonitoringThreshold*s&&(n=a.currentLevel,a.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+n),0=n)&&(n-=1,a.trigger(X.FPS_DROP_LEVEL_CAPPING,{level:n,droppedLevel:a.currentLevel}),a.autoLevelCapping=n,this.streamController.nextLevelSwitch()),this.lastTime=o,this.lastDroppedFrames=i,this.lastDecodedFrames=t)}checkFPSInterval(){var e,t=this.media;t&&(this.isVideoPlaybackQualityAvailable?(e=t.getVideoPlaybackQuality(),this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)):this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount))}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Br,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},{cueHandler:na,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:sv,subtitleTrackController:Zm,timelineController:vv,audioStreamController:Bm,audioTrackController:jm,emeController:Xm,cmcdController:class{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=e=>{try{this.apply(e,{ot:L.MANIFEST,su:!this.initialized})}catch(e){this.hls.logger.warn("Could not generate manifest CMCD data.",e)}},this.applyFragmentData=e=>{try{var{frag:t,part:i}=e,r=this.hls.levels[t.level],s=this.getObjectType(t),a={d:1e3*(i||t).duration,ot:s},n=(s!==L.VIDEO&&s!==L.AUDIO&&s!=L.MUXED||(a.br=r.bitrate/1e3,a.tb=this.getTopBandwidth(s)/1e3,a.bl=this.getBufferLength(s)),i?this.getNextPart(i):this.getNextFrag(t));null!=n&&n.url&&n.url!==t.url&&(a.nor=n.url),this.apply(e,a)}catch(e){this.hls.logger.warn("Could not generate segment CMCD data.",e)}},this.hls=e;var t=this.config=e.config,i=t.cmcd;null!=i&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||e.sessionId,this.cid=i.contentId,this.useHeaders=!0===i.useHeaders,this.includeKeys=i.includeKeys,this.registerListeners())}registerListeners(){var e=this.hls;e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHED,this.onMediaDetached,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){var e=this.hls;e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHED,this.onMediaDetached,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,t){var i;this.audioBuffer=null==(i=t.tracks.audio)?void 0:i.buffer,this.videoBuffer=null==(i=t.tracks.video)?void 0:i.buffer}createData(){var e;return{v:1,sf:ms.HLS,sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,i={}){Qa(i,this.createData());var t=i.ot===L.INIT||i.ot===L.VIDEO||i.ot===L.MUXED;this.starved&&t&&(i.bs=!0,i.su=!0,this.starved=!1),null==i.su&&(i.su=this.buffering);let r=this.includeKeys;r&&(i=Object.keys(i).reduce((e,t)=>(r.includes(t)&&(e[t]=i[t]),e),{}));t={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),Nc(e.headers,i,t)):e.url=$c(e.url,i,t)}getNextFrag(e){var t=null==(t=this.hls.levels[e.level])?void 0:t.details;if(t)return e=e.sn-t.startSN,t.fragments[1+e]}getNextPart(e){var t,{index:i,fragment:e}=e,r=null==(t=this.hls.levels[e.level])||null==(t=t.details)?void 0:t.partList;if(r){var s=e.sn;for(let e=r.length-1;0<=e;e--){var a=r[e];if(a.index===i&&a.fragment.sn===s)return r[e+1]}}}getObjectType(e){var t=e.type;return"subtitle"===t?L.TIMED_TEXT:"initSegment"===e.sn?L.INIT:"audio"===t?L.AUDIO:"main"===t?this.hls.audioTracks.length?L.VIDEO:L.MUXED:void 0}getTopBandwidth(e){let t=0,i;var r=this.hls;return(i=e===L.AUDIO?r.audioTracks:(e=-1<(e=r.maxAutoLevel)?e+1:r.levels.length,r.levels.slice(0,e))).forEach(e=>{e.bitrate>t&&(t=e.bitrate)}),0(e[t]=wu(i[t]),e),{}):i}function Su(e,t){var i=e.loader;i!==yv&&i!==Ev?(t.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):(()=>{if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1})()&&(e.loader=yv,e.progressive=!0,e.enableSoftwareAES=!0,t.log("[config]: Progressive streaming enabled, using FetchLoader"))}class Tv extends fm{constructor(e,t){super("gap-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var e;null!=(e=this.media)&&e.seeking||(this.waiting=self.performance.now(),this.tick())},this.onMediaEnded=()=>{var e;this.hls&&(this.ended=(null==(e=this.media)?void 0:e.currentTime)||1,this.hls.trigger(X.MEDIA_ENDED,{stalled:!1}))},this.hls=e,this.fragmentTracker=t,this.registerListeners()}registerListeners(){var e=this.hls;e&&(e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.BUFFER_APPENDED,this.onBufferAppended,this))}unregisterListeners(){var e=this.hls;e&&(e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.BUFFER_APPENDED,this.onBufferAppended,this))}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(e,t){this.setInterval(100),this.mediaSource=t.mediaSource;t=this.media=t.media;nn(t,"playing",this.onMediaPlaying),nn(t,"waiting",this.onMediaWaiting),nn(t,"ended",this.onMediaEnded)}onMediaDetaching(e,t){this.clearInterval();var i=this.media;i&&(wd(i,"playing",this.onMediaPlaying),wd(i,"waiting",this.onMediaWaiting),wd(i,"ended",this.onMediaEnded),this.media=null),this.mediaSource=void 0}onBufferAppended(e,t){this.buffered=t.timeRanges}get hasBuffered(){return 0r.end(0)){var s=bn.bufferedInfo(bn.timeRangesToArray(this.buffered.audio),t,0);if(1=s.start){s=bn.timeRangesToArray(r),r=bn.bufferedInfo(s,i,0).bufferedIndex;if(-1 ${s} buffered index: `+i);this.warn(r.message),this.media.currentTime+=1e-6;let e=Lu(t,this.fragmentTracker);e=e&&"fragment"in e?e.fragment:e||void 0;a=bn.bufferInfo(this.media,t,0);this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:r,reason:r.message,frag:e,buffer:a.len,bufferInfo:a})}}}}}_tryFixBufferStall(e,t,i){var{fragmentTracker:r,media:s}=this,a=null==(a=this.hls)?void 0:a.config;if(s&&r&&a){s=null==(s=this.hls)?void 0:s.latestLevelDetails,r=Lu(i,r);if(r||null!=s&&s.live&&ia.maxBufferHole||e.nextStart&&(e.nextStart-i1e3*a.highBufferWatchdogPeriod||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(e))}}adjacentTraversal(e,t){var i=this.fragmentTracker,e=e.nextStart;if(i&&e){t=i.getFragAtPos(t,qa),i=i.getFragAtPos(e,qa);if(t&&i)return i.sn-t.sn<2}return!1}_reportStall(e){var{hls:t,media:i,stallReported:r,stalled:s}=this;!r&&null!==s&&i&&t&&(this.stallReported=!0,r=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${B(e)})`),this.warn(r.message),t.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.BUFFER_STALLED_ERROR,fatal:!1,error:r,buffer:e.len,bufferInfo:e,stalled:{start:s}}))}_trySkipBufferHole(i){var{fragmentTracker:r,media:e}=this,t=null==(t=this.hls)?void 0:t.config;if(e&&r&&t){var s=e.currentTime,a=bn.bufferInfo(e,s,0),n=st.maxBufferHole){let e=!1;if(!(e=0===s&&(o=r.getAppendedFrag(0,qa))&&n{var e=Au();try{e&&new e(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();class wv{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.assetCue=void 0,this.onEventCueEnter=()=>{this.hls&&this.hls.trigger(X.EVENT_CUE_ENTER,{})},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){var e=this.hls;e&&(e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}_unregisterListeners(){var e=this.hls;e&&(e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}onMediaAttaching(e,t){this.media=t.media,!1===(null==(t=t.overrides)?void 0:t.cueRemoval)&&(this.removeCues=!1)}onMediaAttached(){var e=null==(e=this.hls)?void 0:e.latestLevelDetails;e&&this.updateDateRangeCues(e)}onMediaDetaching(e,t){this.media=null,!t.transferMedia&&(this.id3Track&&(this.removeCues&&Kc(this.id3Track,this.onEventCueEnter),this.id3Track=null),this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(e){e=this.getID3Track(e.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;eda?da:t)-l<=0&&(t=l+.25);for(let e=0;ee.type===_.audioId3&&i:"video"===a?e=>e.type===_.emsg&&t:e=>e.type===_.audioId3&&i||e.type===_.emsg&&t)}}}onLevelUpdated(e,{details:t}){this.updateDateRangeCues(t,!0)}onLevelPtsUpdated(e,t){.01!a.includes(e));for(let e=d.length;e--;){var c,u=d[e];let t=null==(c=n[u])?void 0:c.cues;delete n[u],t&&Object.keys(t).forEach(e=>{e=t[e];if(e){e.removeEventListener("enter",this.onEventCueEnter);try{i.removeCue(e)}catch(e){}}})}}else n=this.dateRangeCuesAppended={};o=t.fragments[t.fragments.length-1];if(0!==a.length&&G(null==o?void 0:o.programDateTime)){this.id3Track||(this.id3Track=this.createTrack(this.media));for(let e=0;e{if(t!==i.id){t=s[t];if(t.class===i.class&&t.startDate>i.startDate&&(!e||i.startDate{var e,t,i,r=this.media,s=this.levelDetails;r&&s&&(this.currentTime=r.currentTime,null!==(e=this.computeLatency()))&&(this._latency=e,{lowLatencyMode:t,maxLiveSyncPlaybackRate:i}=this.config,t)&&1!==i&&s.live&&null!==(t=this.targetLatency)&&((e=e-t){e.loadError=0,e.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(e,t){this.resetLevels()}onManifestLoaded(e,t){let d=this.hls.config.preferManagedMediaSource,c=[],u={},p={},f=!1,g=!1,m=!1;t.levels.forEach(e=>{var t=e.attrs;let{audioCodec:i,videoCodec:r}=e;i&&(e.audioCodec=i=Rl(i,d)||void 0),r=r&&(e.videoCodec=(e=>{var t=e.split(",");for(let e=0;e(!!e||!(!i||!r))&&!!(e=t)&&-1{if(this.hls){let e="no level with compatible codecs found in manifest",t=e;r.levels.length&&(t="one or more CODECS in variant not supported: "+B(r.levels.map(e=>e.attrs.CODECS).filter((e,t,i)=>i.indexOf(e)===t)),this.warn(t),e+=` (${t})`);var i=new Error(e);this.hls.trigger(X.ERROR,{type:Y.MEDIA_ERROR,details:q.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:r.url,error:i,reason:t})}}),e.end=performance.now();else{r.audioTracks&&Iu(n=r.audioTracks.filter(e=>!e.audioCodec||this.isAudioSupported(e.audioCodec))),r.subtitles&&Iu(o=r.subtitles);var h=l.slice(0);l.sort((e,t)=>{if(e.attrs["HDCP-LEVEL"]!==t.attrs["HDCP-LEVEL"])return(e.attrs["HDCP-LEVEL"]||"")>(t.attrs["HDCP-LEVEL"]||"")?1:-1;if(s&&e.height!==t.height)return e.height-t.height;if(e.frameRate!==t.frameRate)return e.frameRate-t.frameRate;if(e.videoRange!==t.videoRange)return Cr.indexOf(e.videoRange)-Cr.indexOf(t.videoRange);if(e.videoCodec!==t.videoCodec){var i=Ll(e.videoCodec),r=Ll(t.videoCodec);if(i!==r)return r-i}if(e.uri===t.uri&&e.codecSet!==t.codecSet){r=Al(e.codecSet),i=Al(t.codecSet);if(r!==i)return i-r}return e.averageBitrate!==t.averageBitrate?e.averageBitrate-t.averageBitrate:0});let t=h[0];if(this.steering&&(l=this.steering.filterParsedLevels(l)).length!==h.length)for(let e=0;e!!e.url)};e.end=performance.now(),this.hls.trigger(X.MANIFEST_PARSED,p)}}get levels(){return 0===this._levels.length?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(e){var t=this._levels;if(0!==t.length){if(e<0||e>=t.length){var i=new Error("invalid level idx"),r=e<0;if(this.hls.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.LEVEL_SWITCH_ERROR,level:e,fatal:r,error:i,reason:i.message}),r)return;e=Math.min(e,t.length-1)}var i=this.currentLevelIndex,r=this.currentLevel,s=r?r.attrs["PATHWAY-ID"]:void 0,t=t[e],a=t.attrs["PATHWAY-ID"];this.currentLevelIndex=e,this.currentLevel=t,i===e&&r&&s===a||(this.log(`Switching to level ${e} (${t.height?t.height+"p ":""}${t.videoRange?t.videoRange+" ":""}${t.codecSet?t.codecSet+" ":""}@${t.bitrate})${a?" with Pathway "+a:""} from level `+i+(s?" with Pathway "+s:"")),a={level:e,attrs:t.attrs,details:t.details,bitrate:t.bitrate,averageBitrate:t.averageBitrate,maxBitrate:t.maxBitrate,realBitrate:t.realBitrate,width:t.width,height:t.height,codecSet:t.codecSet,audioCodec:t.audioCodec,videoCodec:t.videoCodec,audioGroups:t.audioGroups,subtitleGroups:t.subtitleGroups,loaded:t.loaded,loadError:t.loadError,fragmentError:t.fragmentError,name:t.name,id:t.id,uri:t.uri,url:t.url,urlId:0,audioGroupIds:t.audioGroupIds,textGroupIds:t.textGroupIds},this.hls.trigger(X.LEVEL_SWITCHING,a),(i=t.details)&&!i.live)||(s=this.switchParams(t.uri,null==r?void 0:r.details,i),this.loadPlaylist(s))}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){var e;return void 0===this._startLevel?void 0!==(e=this.hls.config.startLevel)?e:this.hls.firstAutoLevel:this._startLevel}set startLevel(e){this._startLevel=e}get pathways(){return this.steering?this.steering.pathways():[]}get pathwayPriority(){return this.steering?this.steering.pathwayPriority:null}set pathwayPriority(e){if(this.steering){let t=this.steering.pathways();var i=e.filter(e=>-1!==t.indexOf(e));e.length<1?this.warn(`pathwayPriority ${e} should contain at least one pathway from list: `+t):this.steering.pathwayPriority=i}}onError(e,t){!t.fatal&&t.context&&t.context.type===Fo&&t.context.level===this.level&&this.checkRetry(t)}onFragBuffered(e,{frag:i}){if(void 0!==i&&i.type===qa){let t=i.elementaryStreams;Object.keys(t).some(e=>!!t[e])&&null!=(i=this._levels[i.level])&&i.loadError&&(this.log(`Resetting level error count of ${i.loadError} on frag buffered`),i.loadError=0)}}onLevelLoaded(e,t){var{level:i,details:r}=t,s=t.levelInfo;if(s)if(s===this.currentLevel||t.withoutMultiVariant){0===s.fragmentError&&(s.loadError=0);let e=s.details;e===t.details&&e.advanced&&(e=void 0),this.playlistLoaded(i,t,e)}else null!=(s=t.deliveryDirectives)&&s.skip&&(r.deltaUpdateFailed=!0);else this.warn("Invalid level index "+i),null!=(s=t.deliveryDirectives)&&s.skip&&(r.deltaUpdateFailed=!0)}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel)&&this.scheduleLoading(this.currentLevel,e)}loadingPlaylist(e,t){super.loadingPlaylist(e,t);var i=this.getUrlWithDirectives(e.uri,t),r=this.currentLevelIndex,s=e.attrs["PATHWAY-ID"],a=e.details,n=null==a?void 0:a.age;this.log(`Loading level index ${r}${void 0!==(null==t?void 0:t.msn)?" at sn "+t.msn+" part "+t.part:""}${s?" Pathway "+s:""}${n&&a.live?" age "+n.toFixed(1)+(a.type?" "+a.type||0:""):""} `+i),this.hls.trigger(X.LEVEL_LOADING,{url:i,level:r,levelInfo:e,pathwayId:e.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}get nextLoadLevel(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}removeLevel(i){var e,t;1!==this._levels.length&&(gd(e=this._levels.filter((e,t)=>t!==i||(this.steering&&this.steering.removeLevel(e),e===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,e.details)&&e.details.fragments.forEach(e=>e.level=-1),!1))),this._levels=e,-1{var t=e.groupId||"";e.id=i[t]=i[t]||0,i[t]++})}function Pu(){return self.SourceBuffer||self.WebKitSourceBuffer}function Cu(){var e;return!!Ho()&&(!(e=Pu())||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove)}class _v extends Em{constructor(e,t,i){super(e,t,i,"stream-controller",qa),this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{var e=this.media,t=e?e.currentTime:null;null!==t&&G(t)&&(this.log("Media seeked to "+t.toFixed(3)),this.getBufferedFrag(t))&&(null===(e=this.getFwdBufferInfoAtPos(e,t,qa,0))||0===e.len?this.warn(`Main forward buffer length at ${t} on "seeked" event ${e?e.len:"empty"})`):this.tick())},this.registerListeners()}registerListeners(){super.registerListeners();var e=this.hls;e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();var e=this.hls;e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(e,t){if(this.levels){var{lastCurrentTime:i,hls:r}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let e=r.startLevel;-1===e&&(r.config.testBandwidth&&1r.end&&(this.backtrackFragment=null);var n,o,t=this.backtrackFragment?this.backtrackFragment.start:r.end;let e=this.getNextFragment(t,a);this.couldBacktrack&&!this.fragPrevious&&e&&en(e)&&this.fragmentTracker.getState(e)!==Eh?(n=(null!=(n=this.backtrackFragment)?n:e).sn-a.startSN,(n=a.fragments[n-1])&&e.cc===n.cc&&(e=n,this.fragmentTracker.removeFragment(n))):this.backtrackFragment&&r.len&&(this.backtrackFragment=null),e&&this.isLoopLoading(e,t)&&(e.gap||(o=((n=this.audioOnly&&!this.altAudio?tl:il)===il?this.videoBuffer:this.mediaBuffer)||this.media)&&this.afterBufferFlushed(o,n,qa),e=this.getNextFragmentLoopLoading(e,a,r,qa,i)),!e||this.exceedsMaxBuffer(r,i,e)||(!e.initSegment||e.initSegment.data||this.bitrateTest||(e=e.initSegment),this.loadFragment(e,s,t))}}}}}}}loadFragment(e,t,i){var r=this.fragmentTracker.getState(e);r===vh||r===bh?en(e)?this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,t)):super.loadFragment(e,t,i):this._loadInitSegment(e,t):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,qa)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){var e;this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY),0!==this.altAudio&&((null==(e=this.getLevelDetails())?void 0:e.fragmentStart)||0)>this.lastCurrentTime&&super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio")}nextLevelSwitch(){var{levels:t,media:i}=this;if(null!=i&&i.readyState){let e;var r=this.getAppendedFrag(i.currentTime),r=(r&&1=s-a.maxFragLookUpTolerance&&i<=r,null!==t)&&n.duration>t&&(i{this.hls&&this.hls.trigger(X.AUDIO_TRACK_SWITCHED,t)}),r.trigger(X.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null})):r.trigger(X.AUDIO_TRACK_SWITCHED,t))}onAudioTrackSwitched(e,t){var i,t=ql(t.url,this.hls);t&&(i=this.videoBuffer)&&this.mediaBuffer!==i&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i),this.altAudio=t?2:0,this.tick()}onBufferCreated(e,t){var i,r=t.tracks;let s,a,n=!1;for(i in r){var o=r[i];"main"===o.id?(a=i,s=o,"video"===i&&(o=r[i])&&(this.videoBuffer=o.buffer)):n=!0}n&&s?(this.log(`Alternate track found, use ${a}.buffered to schedule main fragment loading`),this.mediaBuffer=s.buffer):this.mediaBuffer=this.media}onFragBuffered(e,t){var{frag:t,part:i}=t,r=t.type===qa;if(r){if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${i?" p: "+i.index:""} of level ${t.level} finished buffering, but was aborted. state: `+this.state),void(this.state===k.PARSED&&(this.state=k.IDLE));var s=(i||t).stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),en(t)&&(this.fragPrevious=t),this.fragBufferedComplete(t,i)}s=this.media;s&&(!this._hasEnoughToStart&&bn.getBuffered(s).length&&(this._hasEnoughToStart=!0,this.seekToStartPos()),r)&&this.tick()}get hasEnoughToStart(){return this._hasEnoughToStart}onError(e,t){var i;if(t.fatal)this.state=k.ERROR;else switch(t.details){case q.FRAG_GAP:case q.FRAG_PARSING_ERROR:case q.FRAG_DECRYPT_ERROR:case q.FRAG_LOAD_ERROR:case q.FRAG_LOAD_TIMEOUT:case q.KEY_LOAD_ERROR:case q.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(qa,t);break;case q.LEVEL_LOAD_ERROR:case q.LEVEL_LOAD_TIMEOUT:case q.LEVEL_PARSING_ERROR:t.levelRetry||this.state!==k.WAITING_LEVEL||(null==(i=t.context)?void 0:i.type)!==Fo||(this.state=k.IDLE);break;case q.BUFFER_ADD_CODEC_ERROR:case q.BUFFER_APPEND_ERROR:"main"===t.parent&&this.reduceLengthAndFlushBuffer(t)&&this.resetLoadingState();break;case q.BUFFER_FULL_ERROR:"main"===t.parent&&this.reduceLengthAndFlushBuffer(t)&&(!this.config.interstitialsController&&this.config.assetPlayerId?this._hasEnoughToStart=!0:this.flushMainBuffer(0,Number.POSITIVE_INFINITY));break;case q.INTERNAL_EXCEPTION:this.recoverWorkerError(t)}}onFragLoadEmergencyAborted(){this.state=k.IDLE,this._hasEnoughToStart||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()}onBufferFlushed(e,{type:t}){var i;t===tl&&this.altAudio||(i=(t===il?this.videoBuffer:this.mediaBuffer)||this.media)&&(this.afterBufferFlushed(i,t,qa),this.tick())}onLevelsUpdated(e,t){-1{var t,i=this.hls,r=null==e?void 0:e.frag;r&&!this.fragContextChanged(r)&&(s.fragmentError=0,this.state=k.IDLE,this.startFragRequested=!1,this.bitrateTest=!1,(t=r.stats).parsing.start=t.parsing.end=t.buffering.start=t.buffering.end=self.performance.now(),i.trigger(X.FRAG_LOADED,e),r.bitrateTest=!1)}).catch(e=>{this.state!==k.STOPPED&&this.state!==k.ERROR&&(this.warn(e),this.resetFragmentLoading(t))})}_handleTransmuxComplete(e){var t=this.playlistType,i=this.hls,{remuxResult:e,chunkMeta:r}=e,s=this.getCurrentContext(r);if(s){var{frag:s,part:a,level:n}=s,{video:o,text:l,id3:h,initSegment:d}=e,c=n.details,u=this.altAudio?void 0:e.audio;if(this.fragContextChanged(s))this.fragmentTracker.removeFragment(s);else{if(this.state=k.PARSING,d){var p=d.tracks;if(p){var f=s.initSegment||s;if(this.unhandledEncryptionError(d,s))return;this._bufferInitSegment(n,p,f,r),i.trigger(X.FRAG_PARSING_INIT_SEGMENT,{frag:f,id:t,tracks:p})}var n=d.initPTS,f=d.timescale,p=this.initPTS[s.cc];!G(n)||p&&p.baseTime===n&&p.timescale===f||(p=d.trackId,this.initPTS[s.cc]={baseTime:n,timescale:f,trackId:p},i.trigger(X.INIT_PTS_FOUND,{frag:s,id:t,initPTS:n,timescale:f,trackId:p}))}if(o&&c){u&&"audiovideo"===o.type&&this.logMuxedErr(s);var d=c.fragments[s.sn-1-c.startSN],n=s.sn===c.startSN,f=!d||s.cc>d.cc;if(!1!==e.independent){var{startPTS:p,endPTS:d,startDTS:e,endDTS:g}=o;if(a)a.elementaryStreams[o.type]={startPTS:p,endPTS:d,startDTS:e,endDTS:g};else if(o.firstKeyFrame&&o.independent&&1===r.id&&!f&&(this.couldBacktrack=!0),o.dropped&&o.independent){var m=this.getMainFwdBufferInfo(),m=(m?m.end:this.getLoadPosition())+this.config.maxBufferHole,v=o.firstKeyFramePTS||p;if(!n&&m{var t=i[e].initSegment;null!=t&&t.byteLength&&this.hls.trigger(X.BUFFER_APPENDING,{type:e,data:t,frag:r,part:null,chunkMeta:s,parent:r.type})})}this.tickImmediate()}}getMainFwdBufferInfo(){var e=this.mediaBuffer&&2===this.altAudio?this.mediaBuffer:this.media;return this.getFwdBufferInfo(e,qa)}get maxBufferLength(){var{levels:e,level:t}=this,e=null==e?void 0:e[t];return e?this.getMaxBufferLength(e.maxBitrate):this.config.maxBufferLength}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=k.IDLE}checkFragmentChanged(){var e,t=this.media;let i=null;t&&1{if(this.emeController)return t.setKeyFormat(e),(e=Hh(e))?this.emeController.getKeySystemAccess([e]):void 0})}if(this.config.requireKeySystemAccessOnStart){var e=Kh(this.config);if(e.length)return this.emeController.getKeySystemAccess(e)}}return null}load(t){return!t.decryptdata&&t.encrypted&&this.emeController&&this.config.emeEnabled?this.emeController.selectKeySystemFormat(t).then(e=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i;e&&t.setKeyFormat(e);let r=t.decryptdata;if(!r)return e=new Error(e?"Expected frag.decryptdata to be defined after setting format "+e:`Missing decryption data on fragment in onKeyLoading (emeEnabled with controller: ${this.emeController&&this.config.emeEnabled})`),Promise.reject(this.createKeyLoadError(t,q.KEY_LOAD_ERROR,e));e=r.uri;if(!e)return Promise.reject(this.createKeyLoadError(t,q.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${e}"`)));e=xu(r);let s=this.keyIdToKeyInfo[e];if(null!=(i=s)&&i.decryptdata.key)return r.key=s.decryptdata.key,Promise.resolve({frag:t,keyInfo:s});if(this.emeController&&null!=(i=s)&&i.keyLoadPromise)switch(this.emeController.getKeyStatus(s.decryptdata)){case"usable":case"usable-in-future":return s.keyLoadPromise.then(e=>{e=e.keyInfo;return r.key=e.decryptdata.key,{frag:t,keyInfo:e}})}switch(this.log(`${this.keyIdToKeyInfo[e]?"Rel":"L"}oading${r.keyId?" keyId: "+Ja(r.keyId):""} URI: ${r.uri} from ${t.type} `+t.level),s=this.keyIdToKeyInfo[e]={decryptdata:r,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},r.method){case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return"identity"===r.keyFormat?this.loadKeyHTTP(s,t):this.loadKeyEME(s,t);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(s,t);default:return Promise.reject(this.createKeyLoadError(t,q.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${r.method}"`)))}}loadKeyEME(t,i){let r={frag:i,keyInfo:t};if(this.emeController&&this.config.emeEnabled){if(!t.decryptdata.keyId&&null!=(s=i.initSegment)&&s.data){var s=(e=>{let t=[];return ul(e,e=>t.push(e.subarray(8,24))),t})(i.initSegment.data);if(s.length){let e=s[0];e.some(e=>0!==e)?(this.log("Using keyId found in init segment "+Ja(e)),ym.setKeyIdForUri(t.decryptdata.uri,e)):(e=ym.addKeyIdForUri(t.decryptdata.uri),this.log("Generating keyId to patch media "+Ja(e))),t.decryptdata.keyId=e}}return t.decryptdata.keyId||en(i)?(s=this.emeController.loadKey(r),(t.keyLoadPromise=s.then(e=>(t.mediaKeySessionContext=e,r))).catch(e=>{throw t.keyLoadPromise=null,"data"in e&&(e.data.frag=i),e})):Promise.resolve(r)}return Promise.resolve(r)}loadKeyHTTP(i,a){let r=this.config;let l=new r.loader(r);return a.keyLoader=i.loader=l,i.keyLoadPromise=new Promise((n,o)=>{let s={keyInfo:i,frag:a,responseType:"arraybuffer",url:i.decryptdata.uri};var e=r.keyLoadPolicy.default,e={loadPolicy:e,timeout:e.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},t={onSuccess:(e,t,i,r)=>{var{frag:i,keyInfo:s}=i,a=xu(s.decryptdata);if(!i.decryptdata||s!==this.keyIdToKeyInfo[a])return o(this.createKeyLoadError(i,q.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),r));s.decryptdata.key=i.decryptdata.key=new Uint8Array(e.data),i.keyLoader=null,s.loader=null,n({frag:i,keyInfo:s})},onError:(e,t,i,r)=>{this.resetLoader(t),o(this.createKeyLoadError(a,q.KEY_LOAD_ERROR,new Error(`HTTP Error ${e.code} loading key `+e.text),i,Za({url:s.url,data:void 0},e)))},onTimeout:(e,t,i)=>{this.resetLoader(t),o(this.createKeyLoadError(a,q.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),i))},onAbort:(e,t,i)=>{this.resetLoader(t),o(this.createKeyLoadError(a,q.INTERNAL_ABORTED,new Error("key loading aborted"),i))}};l.load(s,e,t)})}resetLoader(e){var{frag:e,keyInfo:t,url:i}=e,r=t.loader,e=(e.keyLoader===r&&(e.keyLoader=null,t.loader=null),xu(t.decryptdata)||i);delete this.keyIdToKeyInfo[e],r&&r.destroy()}}function xu(e){if(e.keyFormat!==Vh){var t=e.keyId;if(t)return Ja(t)}return e.uri}function Du(e){e=e.type;switch(e){case No:return Xa;case Uo:return $o;default:return qa}}function Ou(e,t){let i=e.url;return i=void 0!==i&&0!==i.indexOf("data:")?i:t.url}class Av{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){var e=this.hls;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(X.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){var e=this.hls;e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_LOADING,this.onLevelLoading,this),e.off(X.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(X.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(e){var t=this.hls.config,t=new(t.pLoader||t.loader)(t);return this.loaders[e.type]=t}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,t){t=t.url;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Mo,url:t,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(e,t){var{id:t,level:i,pathwayId:r,url:s,deliveryDirectives:a,levelInfo:n}=t;this.load({id:t,level:i,pathwayId:r,responseType:"text",type:Fo,url:s,deliveryDirectives:a,levelOrTrack:n})}onAudioTrackLoading(e,t){var{id:t,groupId:i,url:r,deliveryDirectives:s,track:a}=t;this.load({id:t,groupId:i,level:null,responseType:"text",type:No,url:r,deliveryDirectives:s,levelOrTrack:a})}onSubtitleTrackLoading(e,t){var{id:t,groupId:i,url:r,deliveryDirectives:s,track:a}=t;this.load({id:t,groupId:i,level:null,responseType:"text",type:Uo,url:r,deliveryDirectives:s,levelOrTrack:a})}onLevelsUpdated(e,i){var r=this.loaders[Fo];if(r){let t=r.context;t&&!i.levels.some(e=>e===t.levelOrTrack)&&(r.abort(),delete this.loaders[Fo])}}load(t){var i=this.hls.config;let e=this.getInternalLoader(t);if(e){var r=this.hls.logger,s=e.context;if(s&&s.levelOrTrack===t.levelOrTrack&&(s.url===t.url||s.deliveryDirectives&&!t.deliveryDirectives))return void(s.url===t.url?r.log(`[playlist-loader]: ignore ${t.url} ongoing request`):r.log(`[playlist-loader]: ignore ${t.url} in favor of `+s.url));r.log("[playlist-loader]: aborting previous loader for type: "+t.type),e.abort()}let a;if(a=t.type===Mo?i.manifestLoadPolicy.default:Qa({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),e=this.createInternalLoader(t),G(null==(s=t.deliveryDirectives)?void 0:s.part)){let e;t.type===Fo&&null!==t.level?e=this.hls.levels[t.level].details:t.type===No&&null!==t.id?e=this.hls.audioTracks[t.id].details:t.type===Uo&&null!==t.id&&(e=this.hls.subtitleTracks[t.id].details),e&&(r=e.partTarget,i=e.targetduration,r)&&i&&(s=1e3*Math.max(3*r,.8*i),a=Qa({},a,{maxTimeToFirstByteMs:Math.min(s,a.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(s,a.maxTimeToFirstByteMs)}))}r=a.errorRetry||a.timeoutRetry||{},i={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:r.maxNumRetry||0,retryDelay:r.retryDelayMs||0,maxRetryDelay:r.maxRetryDelayMs||0};e.load(t,i,{onSuccess:(e,t,i,r)=>{var s=this.getInternalLoader(i),a=(this.resetInternalLoader(i.type),e.data);t.parsing.start=performance.now(),bm.isMediaPlaylist(a)||i.type!==Mo?this.handleTrackOrLevelPlaylist(e,t,i,r||null,s):this.handleMasterPlaylist(e,t,i,r)},onError:(e,t,i,r)=>{this.handleNetworkError(t,i,!1,e,r)},onTimeout:(e,t,i)=>{this.handleNetworkError(t,i,!0,void 0,e)}})}checkAutostartLoad(){var e,t,i;this.hls&&({config:{autoStartLoad:e,startPosition:t},forceStartLoad:i}=this.hls,e||i)&&(this.hls.logger.log(`${e?"auto":"force"} startLoad with configured startPosition `+t),this.hls.startLoad(t))}handleMasterPlaylist(e,t,i,r){var s,a,n,o,l,h=this.hls,d=e.data,c=Ou(e,i),u=bm.parseMasterPlaylist(d,c);u.playlistParsingError?(t.parsing.end=performance.now(),this.handleManifestParsingError(e,i,u.playlistParsingError,r,t)):({contentSteering:e,levels:i,sessionData:s,sessionKeys:a,startTimeOffset:n,variableList:o}=u,{AUDIO:d=[],SUBTITLES:u,"CLOSED-CAPTIONS":l}=(this.variableList=o,i.forEach(r=>{var s=r.unknownCodecs;if(s){var a=this.hls.config.preferManagedMediaSource;let{audioCodec:t,videoCodec:i}=r;for(let e=s.length;e--;){var n=s[e];Sl(n,"audio",a)?(r.audioCodec=t=t?t+","+n:n,_r.audio[t.substring(0,4)]=2,s.splice(e,1)):Sl(n,"video",a)&&(r.videoCodec=i=i?i+","+n:n,_r.video[i.substring(0,4)]=2,s.splice(e,1))}}}),bm.parseMasterPlaylistMedia(d,c,u)),d.length&&!d.some(e=>!e.url)&&i[0].audioCodec&&!i[0].attrs.AUDIO&&(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),d.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new En({}),bitrate:0,url:""})),h.trigger(X.MANIFEST_LOADED,{levels:i,audioTracks:d,subtitles:u,captions:l,contentSteering:e,url:c,stats:t,networkDetails:r,sessionData:s,sessionKeys:a,startTimeOffset:n,variableList:o}))}handleTrackOrLevelPlaylist(e,t,i,r,s){var a=this.hls,{id:n,level:o,type:l}=i,h=Ou(e,i),o=G(o)?o:G(n)?n:0,n=Du(i),o=bm.parseLevelPlaylist(e.data,h,o,n,0,this.variableList);l===Mo&&(n={attrs:new En({}),bitrate:0,details:o,name:"",url:h},o.requestScheduled=t.loading.start+cd(o,0),a.trigger(X.MANIFEST_LOADED,{levels:[n],audioTracks:[],url:h,stats:t,networkDetails:r,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})),t.parsing.end=performance.now(),i.levelDetails=o,this.handlePlaylistLoaded(o,e,t,i,r,s)}handleManifestParsingError(e,t,i,r,s){this.hls.trigger(X.ERROR,{type:Y.NETWORK_ERROR,details:q.MANIFEST_PARSING_ERROR,fatal:t.type===Mo,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:r,stats:s})}handleNetworkError(e,t,i=!1,r,s){let a=`A network ${i?"timeout":"error"+(r?" (status "+r.code+")":"")} occurred while loading `+e.type;e.type===Fo?a+=`: ${e.level} id: `+e.id:e.type!==No&&e.type!==Uo||(a+=` id: ${e.id} group-id: "${e.groupId}"`);var n=new Error(a);this.hls.logger.warn("[playlist-loader]: "+a);let o=q.UNKNOWN,l=!1;var h=this.getInternalLoader(e);switch(e.type){case Mo:o=i?q.MANIFEST_LOAD_TIMEOUT:q.MANIFEST_LOAD_ERROR,l=!0;break;case Fo:o=i?q.LEVEL_LOAD_TIMEOUT:q.LEVEL_LOAD_ERROR,l=!1;break;case No:o=i?q.AUDIO_TRACK_LOAD_TIMEOUT:q.AUDIO_TRACK_LOAD_ERROR,l=!1;break;case Uo:o=i?q.SUBTITLE_TRACK_LOAD_TIMEOUT:q.SUBTITLE_LOAD_ERROR,l=!1}h&&this.resetInternalLoader(e.type);h={type:Y.NETWORK_ERROR,details:o,fatal:l,url:e.url,loader:h,context:e,error:n,networkDetails:t,stats:s};r&&(n=(null==t?void 0:t.url)||e.url,h.response=Za({url:n,data:void 0},r)),this.hls.trigger(X.ERROR,h)}handlePlaylistLoaded(e,t,i,r,s,a){var n=this.hls,{type:o,level:l,levelOrTrack:h,id:d,groupId:c,deliveryDirectives:u}=r,p=Ou(t,r),f=Du(r);let g="number"==typeof r.level&&f===qa?l:void 0;var m,l=e.playlistParsingError;if(l){if(this.hls.logger.warn(l+" "+e.url),!n.config.ignorePlaylistParsingErrors)return void n.trigger(X.ERROR,{type:Y.NETWORK_ERROR,details:q.LEVEL_PARSING_ERROR,fatal:!1,url:p,error:l,reason:l.message,response:t,context:r,level:g,parent:f,networkDetails:s,stats:i});e.playlistParsingError=null}if(e.fragments.length)switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(e.ageHeader)||(e.ageHeader=0)),o){case Mo:case Fo:g&&(h?h!==n.levels[g]&&-1<(m=n.levels.indexOf(h))&&(g=m):g=0),n.trigger(X.LEVEL_LOADED,{details:e,levelInfo:h||n.levels[0],level:g||0,id:d||0,stats:i,networkDetails:s,deliveryDirectives:u,withoutMultiVariant:o===Mo});break;case No:n.trigger(X.AUDIO_TRACK_LOADED,{details:e,track:h,id:d||0,groupId:c||"",stats:i,networkDetails:s,deliveryDirectives:u});break;case Uo:n.trigger(X.SUBTITLE_TRACK_LOADED,{details:e,track:h,id:d||0,groupId:c||"",stats:i,networkDetails:s,deliveryDirectives:u})}else l=e.playlistParsingError=new Error("No Segments found in Playlist"),n.trigger(X.ERROR,{type:Y.NETWORK_ERROR,details:q.LEVEL_EMPTY_ERROR,fatal:!1,url:p,error:l,reason:l.message,response:t,context:r,level:g,parent:f,networkDetails:s,stats:i})}}class wn{static get version(){return Yr}static isMSESupported(){return Cu()}static isSupported(){{if(!Cu())return!1;let t=Ho();return"function"==typeof(null==t?void 0:t.isTypeSupported)&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(e=>t.isTypeSupported(_l(e,"video")))||["mp4a.40.2","fLaC"].some(e=>t.isTypeSupported(_l(e,"audio"))))}}static getMediaSource(){return Ho()}static get Events(){return X}static get MetadataSchema(){return _}static get ErrorTypes(){return Y}static get ErrorDetails(){return q}static get DefaultConfig(){return wn.defaultConfig||ha}static set DefaultConfig(e){wn.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new Id,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;var t=this.logger=((t,e,i)=>{let r=jo();if("object"==typeof console&&!0===t||"object"==typeof t){var s=["debug","log","info","warn","error"];s.forEach(e=>{r[e]=Go(e,t,i)});try{r.log(`Debug logs enabled for "${e}" in hls.js version 1.6.16`)}catch(e){return jo()}s.forEach(e=>{Er[e]=Go(e,t)})}else Qa(Er,r);return r})(e.debug||!1,"Hls instance",e.assetPlayerId),i=this.config=((e,l,t)=>{if((l.liveSyncDurationCount||l.liveMaxLatencyDurationCount)&&(l.liveSyncDuration||l.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==l.liveMaxLatencyDurationCount&&(void 0===l.liveSyncDurationCount||l.liveMaxLatencyDurationCount<=l.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==l.liveMaxLatencyDuration&&(void 0===l.liveSyncDuration||l.liveMaxLatencyDuration<=l.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let h=wu(e),i=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach(s=>{let a=`${"level"===s?"playlist":s}LoadPolicy`,n=void 0===l[a],o=[];i.forEach(e=>{var t=s+"Loading"+e,i=l[t];if(void 0!==i&&n){o.push(t);var r=h[a].default;switch(l[a]={default:r},e){case"TimeOut":r.maxLoadTimeMs=i,r.maxTimeToFirstByteMs=i;break;case"MaxRetry":r.errorRetry.maxNumRetry=i,r.timeoutRetry.maxNumRetry=i;break;case"RetryDelay":r.errorRetry.retryDelayMs=i,r.timeoutRetry.retryDelayMs=i;break;case"MaxRetryTimeout":r.errorRetry.maxRetryDelayMs=i,r.timeoutRetry.maxRetryDelayMs=i}}}),o.length&&t.warn(`hls.js config: "${o.join('", "')}" setting(s) are deprecated, use "${a}": `+B(l[a]))}),Za(Za({},h),l)})(wn.DefaultConfig,e,t),{abrController:e,bufferController:t,capLevelController:r,errorController:s,fpsController:a}=(this.userConfig=e,i.progressive&&Su(i,t),i),s=new s(this),e=this.abrController=new e(this),n=new om(this),o=i.interstitialsController,o=o?this.interstitialsController=new o(this,wn):null,t=this.bufferController=new t(this,n),r=this.capLevelController=new r(this),a=new a(this),l=new Av(this),h=i.contentSteeringController,h=h?new h(this):null,d=this.levelController=new kv(this,h),c=new wv(this),u=new Lv(this.config,this.logger),p=this.streamController=new _v(this,n,u),f=this.gapController=new Tv(this,n),d=(r.setStreamController(p),a.setStreamController(p),[l,d,p]),p=(o&&d.splice(1,0,o),h&&d.splice(1,0,h),this.networkControllers=d,[e,t,f,r,a,c,n]),o=(this.audioTrackController=this.createController(i.audioTrackController,d),i.audioStreamController),h=(o&&d.push(this.audioStreamController=new o(this,n,u)),this.subtitleTrackController=this.createController(i.subtitleTrackController,d),i.subtitleStreamController),e=(h&&d.push(this.subtititleStreamController=new h(this,n,u)),this.createController(i.timelineController,p),u.emeController=this.emeController=this.createController(i.emeController,p),this.cmcdController=this.createController(i.cmcdController,p),this.latencyController=this.createController(Sv,p),this.coreComponents=p,d.push(s),s.onErrorOut);"function"==typeof e&&this.on(X.ERROR,e,s),this.on(X.MANIFEST_LOADED,l.onManifestLoaded,l)}createController(e,t){return e?(e=new e(this),t&&t.push(e),e):null}on(e,t,i=this){this._emitter.on(e,t,i)}once(e,t,i=this){this._emitter.once(e,t,i)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,t,i=this,r){this._emitter.off(e,t,i,r)}listeners(e){return this._emitter.listeners(e)}emit(e,t,i){return this._emitter.emit(e,t,i)}trigger(t,i){if(this.config.debug)return this.emit(t,t,i);try{return this.emit(t,t,i)}catch(e){this.logger.error("An internal error happened while handling event "+t+'. Error message: "'+e.message+'". Here is a stacktrace:',e),this.triggeringException||(this.triggeringException=!0,i=t===X.ERROR,this.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.INTERNAL_EXCEPTION,fatal:i,event:t,error:e}),this.triggeringException=!1)}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){this.logger.log("destroy"),this.trigger(X.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach(e=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(e=>e.destroy()),this.coreComponents.length=0;var e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){var t,i;!e||"media"in e&&!e.media?(i=new Error(`attachMedia failed: invalid argument (${e})`),this.trigger(X.ERROR,{type:Y.OTHER_ERROR,details:q.ATTACH_MEDIA_ERROR,fatal:!0,error:i})):(this.logger.log("attachMedia"),this._media&&(this.logger.warn("media must be detached before attaching"),this.detachMedia()),t=(i="media"in e)?e.media:e,i=i?e:{media:t},this._media=t,this.trigger(X.MEDIA_ATTACHING,i))}detachMedia(){this.logger.log("detachMedia"),this.trigger(X.MEDIA_DETACHING,{}),this._media=null}transferMedia(){this._media=null;var e=this.bufferController.transferMedia();return this.trigger(X.MEDIA_DETACHING,{transferMedia:e}),e}loadSource(e){this.stopLoad();var t=this.media,i=this._url,r=this._url=el.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log("loadSource:"+r),t&&i&&(i!==r||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(X.MANIFEST_LOADING,{url:e})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(t=-1,i){this.logger.log(`startLoad(${t+(i?", ":"")})`),this.started=!0,this.resumeBuffering();for(let e=0;e{e.resumeBuffering&&e.resumeBuffering()}))}pauseBuffering(){this.bufferingEnabled&&(this.logger.log("pause buffering"),this.networkControllers.forEach(e=>{e.pauseBuffering&&e.pauseBuffering()}))}get inFlightFragments(){var e={[qa]:this.streamController.inFlightFrag};return this.audioStreamController&&(e[Xa]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(e[$o]=this.subtititleStreamController.inFlightFrag),e}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");var e=this._media,t=null==e?void 0:e.currentTime;this.detachMedia(),e&&(this.attachMedia(e),t)&&this.startLoad(t)}removeLevel(e){this.levelController.removeLevel(e)}get sessionId(){let e=this._sessionId;return e=e||(this._sessionId=(()=>{try{return crypto.randomUUID()}catch(e){try{var t=URL.createObjectURL(new Blob),i=t.toString();return URL.revokeObjectURL(t),i.slice(i.lastIndexOf("/")+1)}catch(e){let i=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{var t=(i+16*Math.random())%16|0;return i=Math.floor(i/16),("x"==e?t:3&t|8).toString(16)})}}})())}get levels(){var e=this.levelController.levels;return e||[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){this.logger.log("set currentLevel:"+e),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){this.logger.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){this.logger.log("set loadLevel:"+e),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){this.logger.log("set firstLevel:"+e),this.levelController.firstLevel=e}get startLevel(){var e=this.levelController.startLevel;return-1===e&&-1=i)return e}return 0}get maxAutoLevel(){var{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this;let r;if(r=-1===e&&null!=t&&t.length?t.length-1:e,i)for(let e=r;e--;){var s=t[e].attrs["HDCP-LEVEL"];if(s&&s<=i)return e}return r}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(e){this.abrController.nextAutoLevel=e}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(e){var t;return(null==(t=this.audioTrackController)?void 0:t.setAudioOption(e))||null}setSubtitleOption(e){var t;return(null==(t=this.subtitleTrackController)?void 0:t.setSubtitleOption(e))||null}get allAudioTracks(){var e=this.audioTrackController;return e?e.allAudioTracks:[]}get audioTracks(){var e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){var e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}get allSubtitleTracks(){var e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}get subtitleTracks(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}get subtitleDisplay(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay}set subtitleDisplay(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}set targetLatency(e){this.latencyController.targetLatency=e}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(e){this.levelController.pathwayPriority=e}get bufferedToEnd(){var e;return!(null==(e=this.bufferController)||!e.bufferedToEnd)}get interstitialsManager(){var e;return(null==(e=this.interstitialsController)?void 0:e.interstitialsManager)||null}getMediaDecodingInfo(e,t=this.allAudioTracks){return Ol(e,Gl(t),navigator.mediaCapabilities)}}wn.defaultConfig=void 0;class Rv extends lg{get headline(){return this._headline}constructor(e){super(e),this.disableFeature=()=>this.changeHeadline(void 0),this.enableFeature=()=>this.syncHeadline(),this.isEnabled=()=>this.host.config.headlines.active&&0{!In(e,this._headline)&&(this.logger.debug(e?`Headline ${e.number} selected`:"Clearing headline"),this.host.dispatchEvent(new Z.Chosen({headline:e})),this._headline=e)&&this.host.dispatchEvent(new l.Event({body:{headline_number:e.number,player_id:this.host.config.id},type:"headlineview"}))},this.chooseHeadline=()=>{var{items:e,testId:t}=this.host.config.headlines,i=this.host.config.id,[e,i]=(or(this.host.store,"headline-"+i,t),Yt(e,e[0],{identifierKey:"number",storageKey:"headline-"+i+(t?"-"+t:""),store:this.host.store}));return{details:i,headline:e}},this.syncHeadline=()=>{var e;this.isEnabled()&&(e=this.chooseHeadline().headline,this.changeHeadline(e))},this.trackProperties("config")}hostUpdate(e){e.has("config")&&(this.syncHeadline(),this.reevaluateFeatureState())}}let ca={capacity:1e3,interval:75},ua={browser:6048e5,device:31536e6,session:108e5},pa={baseUrls:["https://vt-h-1.b-cdn.net","https://a.vturb.com"],beacon:"/y",fetch:"/x",gif:"/gif"},fa={fallbackToBeacon:!1,initialDelay:200,limit:5,retryOnResponseStatuses:new Set([400,404,408,500,502,503,504])},ga={REQUEST_ABORTED:"REQUEST_ABORTED",REQUEST_FALLBACK:"REQUEST_FALLBACK"},ma=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","src","sck"];class Iv{constructor({maxAge:e,namespace:t,storeJsCompatibility:i}={}){this.clearAll=()=>this.each(e=>this.remove(e)),this.each=t=>{this.removeExpiredKeys();let i=this.namespaceKey(""),r=this.expireKey("");Object.keys(localStorage).forEach(e=>{e.startsWith(i)&&!e.startsWith(r)&&t(e.slice(i.length),this.readStorage(e,null))})},this.get=(e,t)=>(this.removeExpiredKeys(),this.readStorage(this.namespaceKey(e),t)),this.getAll=()=>{let i={};return this.each((e,t)=>{i[e]=t}),i},this.remove=e=>{localStorage.removeItem(this.namespaceKey(e)),localStorage.removeItem(this.expireKey(e))},this.removeByPattern=t=>{this.each(e=>{t.test(e)&&this.remove(e)})},this.removeExpiredKeys=()=>{let i=Date.now();Object.keys(localStorage).filter(e=>e.startsWith(this.expireKey(""))).forEach(e=>{var t=this.readStorage(e,0);t&&t{var i;return localStorage.setItem(this.namespaceKey(e),JSON.stringify(t)),this.maxAge&&(i=Date.now()+this.maxAge,localStorage.setItem(this.expireKey(e),i.toString())),t},this.expireKey=e=>""+this.storeJsPrefix+this.namespaceKey("expire_mixin_"+e),this.namespaceKey=e=>""+this.storeJsPrefix+this.namespace+e,this.readStorage=(e,t)=>{e=localStorage.getItem(e);if(!e)return t;try{return JSON.parse(e)}catch(e){return t}},this.storeJsPrefix=i?"__storejs_":"",this.namespace=t?t+"_":"",this.maxAge=e}}Ba(86);var Mu,Fu,dn="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==Ba.g&&Ba.g||{},Nu="URLSearchParams"in dn,Uu="Symbol"in dn&&"iterator"in Symbol,$u="FileReader"in dn&&"Blob"in dn&&(()=>{try{return new Blob,!0}catch(e){return!1}})(),Bu="FormData"in dn,Vu="ArrayBuffer"in dn;function ju(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function Gu(e){return e="string"!=typeof e?String(e):e}function Hu(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return Uu&&(e[Symbol.iterator]=function(){return e}),e}function cn(t){this.map={},t instanceof cn?t.forEach(function(e,t){this.append(t,e)},this):Array.isArray(t)?t.forEach(function(e){if(2!=e.length)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+e.length);this.append(e[0],e[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function zu(e){if(!e._noBody)return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function Ku(i){return new Promise(function(e,t){i.onload=function(){e(i.result)},i.onerror=function(){t(i.error)}})}function Wu(e){var t=new FileReader,i=Ku(t);return t.readAsArrayBuffer(e),i}function Yu(e){var t;return e.slice?e.slice(0):((t=new Uint8Array(e.byteLength)).set(new Uint8Array(e)),t.buffer)}function qu(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,(this._bodyInit=e)?"string"==typeof e?this._bodyText=e:$u&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:Bu&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:Nu&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():Vu&&$u&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=Yu(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vu&&(ArrayBuffer.prototype.isPrototypeOf(e)||Fu(e))?this._bodyArrayBuffer=Yu(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Nu&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},$u&&(this.blob=function(){var e=zu(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer)return zu(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer));if($u)return this.blob().then(Wu);throw new Error("could not read as ArrayBuffer")},this.text=function(){var e,t,i,r=zu(this);if(r)return r;if(this._bodyBlob)return r=this._bodyBlob,e=new FileReader,t=Ku(e),i=(i=/charset=([A-Za-z0-9_-]+)/.exec(r.type))?i[1]:"utf-8",e.readAsText(r,i),t;if(this._bodyArrayBuffer)return Promise.resolve((e=>{for(var t=new Uint8Array(e),i=new Array(t.length),r=0;r{if("AbortController"in dn)return(new AbortController).signal})(),this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r),"GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache||((i=/([?&])_=[^&]*/).test(this.url)?this.url=this.url.replace(i,"$1_="+(new Date).getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime())}function Zu(e){var i=new FormData;return e.trim().split("&").forEach(function(e){var t;e&&(t=(e=e.split("=")).shift().replace(/\+/g," "),e=e.join("=").replace(/\+/g," "),i.append(decodeURIComponent(t),decodeURIComponent(e)))}),i}function Ju(e,t){if(!(this instanceof Ju))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t=t||{},this.type="default",this.status=void 0===t.status?200:t.status,this.status<200||599{try{return""===t&&dn.location.href?dn.location.href:t}catch(e){return t}})(a.url),!0),"include"===a.credentials?n.withCredentials=!0:"omit"===a.credentials&&(n.withCredentials=!1),"responseType"in n&&($u?n.responseType="blob":Vu&&(n.responseType="arraybuffer")),o&&"object"==typeof o.headers&&!(o.headers instanceof cn||dn.Headers&&o.headers instanceof dn.Headers)?(i=[],Object.getOwnPropertyNames(o.headers).forEach(function(e){i.push(ju(e)),n.setRequestHeader(e,Gu(o.headers[e]))}),a.headers.forEach(function(e,t){-1===i.indexOf(t)&&n.setRequestHeader(t,e)})):a.headers.forEach(function(e,t){n.setRequestHeader(t,e)}),a.signal&&(a.signal.addEventListener("abort",t),n.onreadystatechange=function(){4===n.readyState&&a.signal.removeEventListener("abort",t)}),n.send(void 0===a._bodyInit?null:a._bodyInit)})}ip.polyfill=!0,dn.fetch||(dn.fetch=ip,dn.Headers=cn,dn.Request=Qu,dn.Response=Ju);let va=0,ya=e=>e%pa.baseUrls.length||0,ba=(e,r)=>{let s=0,h={body:JSON.stringify(e),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},keepalive:!0,method:"POST",mode:"cors"};return new Promise((a,n)=>{let o=(e,t)=>fa.fallbackToBeacon?(navigator.sendBeacon(""+e+pa.beacon,h.body)?a:n)(ga.REQUEST_FALLBACK):n(t),i=(i,r)=>{e=i;let s=pa.baseUrls[ya(e)];var e;fetch(""+s+pa.fetch,h).then(e=>{var t;t=e.status,fa.retryOnResponseStatuses.has(t)?0{e instanceof Error&&"AbortError"===e.name?n(ga.REQUEST_ABORTED):0{s+=1,va=e+1;let t=ya(va);0===t&&1i(t,fa.limit-s),Math.pow(2,s)*fa.initialDelay)};i(ya(va),fa.limit-s)})},Ea=Ba(9528);var rp=Ba.n(Ea);let Ta=Ba(3627),wa=Ba.n(Ta);class Pv extends wa(){constructor(){var e,t,i;super(...arguments),this.flush=()=>{this.started&&0!==this.length&&(this.emit("flush",Array.from(this.events.values())),this.events.clear())},this.delayedFlush=(e=ca.interval,t=()=>this.flush(),i=(i||{}).atBegin,Vn(e,t,{debounceMode:!1!==(void 0!==i&&i)})),this.events=new Map,this.started=!1,this.clear=()=>this.events.clear(),this.push=e=>{this.events.set(e.id,e),this.emit("add",e),this.scheduleFlush()},this.start=()=>{this.started=!0,this.scheduleFlush()},this.scheduleFlush=()=>{this.started&&(this.length>=ca.capacity?this.flush():0{this.queue.flush(),this.queue.off("flush",this.flush),window.removeEventListener("beforeunload",this.onBeforeUnload)},this.event=(t,e)=>sp(this,void 0,void 0,function*(){try{this.logger.debug("Sending event",{detail:e,event:t}),this.config.dryRun||this.queue.push({createdAt:Date.now(),data:e,event:t,id:((e,t)=>{t=JSON.stringify({detail:t,event:e});return rp()(t)})(t,e)})}catch(e){this.logger.error("Error sending event: "+t,{message:e instanceof Error?e.message:String(e)})}}),this.setup=e=>{this.config.accountId=e.accountId,this.config.dryRun=e.dryRun,e.dryRun&&this.queue.clear(),ki(e.metadata.uri)&&(this.uri=e.metadata.uri),this.persistUriIfTrackingPresent(this.uri),this.config.metadata=Object.assign(Object.assign({},e.metadata),{uri:this.readPersistedTrackingUri()||this.uri})},this.start=()=>{this.logger.debug("Starting Hermes v4.0.0"),this.setupSystemMetadata(),this.setupConfigureEvents(),this.config.dryRun||this.queue.start()},this.envelopeEvent=e=>({accountId:this.config.accountId||"",createdAt:e.createdAt,data:e.data,device:this.deviceId,event:e.event,id:e.id,metadata:Object.assign(Object.assign({},this.metadata),this.config.metadata),sessionId:this.sessionId}),this.flush=t=>sp(this,void 0,void 0,function*(){try{this.logger.info(`Flushing ${t.length} events`);var e=(t=>{let i=null,r=[];try{return t.forEach(e=>{"timed"!==e.event?r.push(e):(!i||e.data.time>i.data.time)&&(i=e)}),i&&r.push(i),r}catch(e){return t}})(t.map(this.envelopeEvent));yield ba(e,this.logger)}catch(e){this.logger.error(e instanceof Error?e.message:String(e)),t.forEach(e=>this.queue.push(e))}}),this.onBeforeUnload=()=>this.queue.flush(),this.persistUriIfTrackingPresent=e=>{e&&(e=>{try{let t=new URL(e).searchParams;return ma.some(e=>t.has(e))}catch(e){return!1}})(e)&&this.browserStore.set("uri_with_traffic_params",e)},this.readPersistedTrackingUri=()=>this.browserStore.get("uri_with_traffic_params",null),this.setupConfigureEvents=()=>{this.queue.on("flush",this.flush),window.addEventListener("beforeunload",this.onBeforeUnload)},this.setupSystemMetadata=()=>{var e=this.readPersistedTrackingUri()||this.uri;this.metadata={event_version:"4.0.0",traffic_origin_params:(e=>{try{var t,i=new URL(e).searchParams,r={};for(t of ma)i.has(t)&&(r[t]=i.get(t));return r}catch(e){return{}}})(e),uri:e}},this.upsertPersistedId=(e,t)=>{try{var i=e.get(t,c());return e.set(t,i),i}catch(e){return this.logger.error(e instanceof Error?e.message:String(e)),c()}},this.uri=window.location.href,this.sessionStore=new Iv({maxAge:ua.session,namespace:"hermes-session",storeJsCompatibility:!0}),this.deviceStore=new Iv({maxAge:ua.device,namespace:"hermes-device",storeJsCompatibility:!0}),this.browserStore=new Iv({maxAge:ua.browser,namespace:"browser-info",storeJsCompatibility:!0}),this.isReturningVisitor=!!this.deviceStore.get("hermes_device_id",void 0),this.sessionId=this.upsertPersistedId(this.sessionStore,"hermes_session_id"),this.deviceId=this.upsertPersistedId(this.deviceStore,"hermes_device_id")}}class xv{get lastDeviceTimedEventSent(){return this._lastDeviceTimedEventSent}get lastSessionTimedEventSent(){return this._lastSessionTimedEventSent}get maxDeviceWatchedTimeKey(){return`device_max_watched_time:${this.config.deviceId}:`+this.playerId}get maxSessionWatchedTimeKey(){return`max_watched_time:${this.config.sessionId}:`+this.playerId}constructor(e){this.config=e,this._lastDeviceTimedEventSent=0,this._lastSessionTimedEventSent=0,this.logger=new gn("Analytics Services - Watched Time"),this.playerId="",this.setup=e=>{this.playerId=e,this.loadPersistedMaxWatchedTime()}}persistMaxWatchedTime(e){try{if(!this.playerId)return this.logger.error("Player ID not set");this.persistSessionMaxWatchedTime(e),this.persistDeviceMaxWatchedTime(e)}catch(e){this.logger.error("Error persisting max watched time",e)}}loadPersistedMaxWatchedTime(){try{var e=gr.get(this.maxSessionWatchedTimeKey,null),t=gr.get(this.maxDeviceWatchedTimeKey,null);t||gr.removeByPattern(new RegExp(`^device_max_watched_time:.*:${this.playerId}$`)),e||gr.removeByPattern(new RegExp(`^max_watched_time:.*:${this.playerId}$`)),"number"==typeof e&&(this.persistSessionMaxWatchedTime(e),t||this.persistDeviceMaxWatchedTime(e)),"number"==typeof t&&this.persistDeviceMaxWatchedTime(t)}catch(e){this.logger.error("Error loading persisted max watched time",e)}}persistDeviceMaxWatchedTime(e){e>this._lastDeviceTimedEventSent&&(this._lastDeviceTimedEventSent=e,gr.set(this.maxDeviceWatchedTimeKey,e))}persistSessionMaxWatchedTime(e){e>this._lastSessionTimedEventSent&&(this._lastSessionTimedEventSent=e,gr.set(this.maxSessionWatchedTimeKey,e))}}let Sa=e=>{e=Math.round(null!=e?e:0);return e-e%5};class Dv extends Mf{constructor(){super(...arguments),this.analytics=new Cv,this.watchedTime=new xv({deviceId:this.analytics.deviceId,sessionId:this.analytics.sessionId}),this.onAnalyticsEvent=e=>{e.stopImmediatePropagation(),this.analytics.event(e.detail.type,e.detail.body)},this.onAnalyticsMetric=e=>{e.stopImmediatePropagation(),this.analytics.event("metric",{name:e.detail.type,value:e.detail.value})},this.onExitedClick=e=>{e.stopImmediatePropagation(),this.analytics.event("clicked",{time:Math.ceil(null!=(e=null==(e=this.host.video)?void 0:e.currentTime)?e:0)})},this.onPlayerReady=()=>{try{this.logger.trace("Setting up Analytics");({isIframe:t,logger:i}=[{isIframe:this.host.isIframe,logger:this.logger}][0]);var e=null!=(r=_i({logger:i,search:window.location.search}))&&r.hostname?r:Li({isIframe:t,logger:i});this.analytics.setup({accountId:this.host.config.oid,dryRun:this.host.config.preview,metadata:{domain:e.hostname,media_id:this.host.config.video.id,media_type:"video",path:e.pathname,player_id:this.host.config.id,player_version:"4.14.0",uri:e.toString()}}),this.watchedTime.setup(this.host.config.id),this.logger.trace("Starting Analytics"),this.analytics.start(),this.analytics.event("trace_id",{trace_id:this.logger.traceId}),this.analytics.event("pageview",this.host.config.embedVersion?{embed_version:this.host.config.embedVersion}:null),this.analytics.isReturningVisitor&&this.analytics.event("metric",{name:"visitor.returning",value:1})}catch(e){this.logger.error("Error setting up analytics",e)}var t,i,r},this.onVideoEnded=()=>{this.analytics.event("finished",{});var e=this.duration;e<=this.maxSessionWatchedTime||(this.watchedTime.persistMaxWatchedTime(e),this.analytics.event("timed",{time:e}),this.host.removeEventListener(a.Timeupdate,this.onVideoTimeUpdate))},this.onVideoPause=()=>{var e=Math.round((null==(e=this.host.video)?void 0:e.currentTime)||0);e<=this.duration-1&&this.analytics.event("paused",{time:e})},this.onVideoPlay=()=>{var e;this.analytics.event("played",{}),this.analytics.event("timed",{time:Sa((null==(e=this.host.video)?void 0:e.currentTime)||0)}),this.host.addEventListener(a.Timeupdate,this.onVideoTimeUpdate,{passive:!0})},this.onVideoTimeUpdate=()=>this.timed(),this.timed=()=>{var e=Math.min(Sa((null==(e=this.host.video)?void 0:e.currentTime)||0),this.duration);e{try{var e;return!t.href||Ra.some(e=>t.href.startsWith(e))?!1:(e=new URL(t.href,window.location.href),window.location.host!==e.host)}catch(e){return!1}};class Ov extends wa(){constructor(){super(),this.listen=()=>window.addEventListener("click",this.onWindowClick,{capture:!0,passive:!0}),this.unlisten=()=>window.removeEventListener("click",this.onWindowClick,{capture:!0}),this.dispatchExitedClick=()=>{this.emit("exitedClick"),this.unlisten()},this.findClickableElement=e=>{try{for(;e;){if(ka.has(e.tagName))return e;e=e.parentElement}return null}catch(e){return this.logger.error("Error finding clickable parent",e),null}},this.isTrackableInteraction=e=>!e.classList.contains("ignore-click-event")&&(!!ne(e,'.smartplayer-click-event, [id^="smartplayer-click-event"]')||e instanceof HTMLAnchorElement&&this.isTrackableLink(e)),this.isTrackableLink=i=>{if(!Ia(i))return!1;try{let t=new URL(i.href,window.location.href);return _a.some(e=>t.hostname.includes(e))||La.test(t.pathname)||Aa.some(e=>t.searchParams.has(e))}catch(e){return this.logger.error("Error parsing URL",{url:i.href}),!1}},this.onWindowClick=e=>{try{var t;e.target instanceof HTMLElement&&(t=this.findClickableElement(e.target))&&this.isTrackableInteraction(t)&&this.trackInteraction(t)}catch(e){this.logger.error("Click: Error handling click event",e)}},this.trackInteraction=e=>{var t;this.logger.debug("Tracking interaction",e),e instanceof HTMLAnchorElement&&Ia(e)||e instanceof HTMLButtonElement||Ft(e)&&null!=(t=e.form)&&t.action?this.dispatchExitedClick():this.logger.debug("Interaction not trackable",e)},this.logger=new gn(this.constructor.name)}}class Mv extends Mf{constructor(){super(...arguments),this.clickTrackingService=new Ov,this.dispatchExitedClick=()=>{this.host.dispatchEvent(new l.ExitedClick)}}hostConnected(){this.clickTrackingService.on("exitedClick",this.dispatchExitedClick),this.clickTrackingService.listen()}hostDisconnected(){this.clickTrackingService.off("exitedClick",this.dispatchExitedClick),this.clickTrackingService.unlisten()}}var Va=e`#player{background-color:#000;border-radius:var(--player-border-radius);box-shadow:var(--player-box-shadow);color:#fff;cursor:pointer;display:block;outline:none;overflow:hidden;position:relative;user-select:none;width:100%}vturb-player.fluid:not(.in-immersive-mode){border-radius:0;box-shadow:none;height:100%;left:0;margin:0;object-fit:contain;overflow:hidden;padding:0;position:absolute;top:0;width:100%}vturb-player.fluid:not(.in-immersive-mode) .player-immersive-wrapper,vturb-player.fluid:not(.in-immersive-mode) .player-immersive-wrapper-content{height:100%;width:100%}.player-immersive-wrapper.immersive-mode{min-height:100vh;position:relative;z-index:9999999}.player-immersive-wrapper.immersive-mode .player-immersive-wrapper-content{background-color:#000;left:0;min-height:100vh;position:absolute;top:0;transform:translateX(var(--immersive-mode-left,0));width:calc(100vw - var(--immersive-mode-scrollbar-width, 0px))}.player-immersive-wrapper.immersive-mode #player{border-radius:0;height:100vh;margin:0!important;padding:0!important;width:calc(100vw - var(--immersive-mode-scrollbar-width, 0px))}.player-immersive-wrapper.immersive-mode #player video{object-fit:contain}@media (orientation:portrait){.player-immersive-wrapper.immersive-mode,.player-immersive-wrapper.immersive-mode .player-immersive-wrapper-content{min-height:100svh}.player-immersive-wrapper.immersive-mode #player{height:100svh}}.player-immersive-wrapper.immersive-mode.fixed .player-immersive-wrapper-content{bottom:0;position:fixed;right:0;transform:none;width:100vw}.player-immersive-wrapper.immersive-mode.fixed #player{width:100vw}.player-immersive-wrapper .player-immersive-wrapper-content{width:100%}.player-immersive-wrapper:not(.immersive-mode) #player.in-fullscreen{left:0;object-fit:contain;overflow:hidden;position:fixed;top:0;z-index:9999999}.player-immersive-wrapper:not(.immersive-mode) #player.fluid,.player-immersive-wrapper:not(.immersive-mode) #player.in-fullscreen{height:100%;margin:0;padding:0!important;width:100%}.player-immersive-wrapper:not(.immersive-mode) #player.fluid video,.player-immersive-wrapper:not(.immersive-mode) #player.in-fullscreen video{object-fit:contain}.controller{display:flex;flex-direction:column;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.controller-inner__top{display:flex;flex-direction:row}.controller-inner__bottom,.controller-inner__top--center{align-items:center;display:flex;justify-content:center}.controller-inner__top--center{flex:1}.controller-inner__bottom{transform:translateY(0);transition:transform .25s ease 50ms}.show-controls .controller-inner__bottom:not(.controls-hidden){transform:translateY(calc(var(--control-padding)*2*-1 + -1.5rem))}.controller-inner__center{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:10}.controller-spacer{flex:1}.video-wrapper{display:block;left:0;position:absolute;top:0;z-index:0}.video-wrapper,video,vturb-video-hls{height:100%;width:100%}video{left:0;object-position:center;pointer-events:none;position:absolute;top:0}`,hn=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{try{this.unlicensed||(this.controllers.blockers.noneBlocker("played")?this.togglePlay():this.controllers.bar.touch(t,()=>this.togglePlay()))}catch(e){this.logger.error("Failed to handle player click",{error:e,event:t})}},this.urlUpdater=(i,r)=>{try{return this.controllers.links.updaters.reduce((t,e)=>{try{return e(t,r)}catch(e){return this.logger.error("Failed to update URL",{element:r,error:e,url:i}),t}},i)}catch(e){return this.logger.error("Failed to update URL",{element:r,error:e,url:i}),i}}}get activeTrack(){return this.currentTrack}get subtitleTracks(){var e;return Array.from((null==(e=this.video)?void 0:e.textTracks)||[])}get inFullscreen(){return this.controllers.fullscreen.inFullscreen||this.controllers.immersiveMode.inImmersiveMode}addEventListener(t,i,r){t="string"==typeof t?t:t.toString();try{t===o.Ready.eventName&&this.ready?(this.logger.debug("addEventListener already ready",{listener:i,options:r,type:t}),i.call(this,new o.Ready({config:this.config}))):super.addEventListener(t,i,r)}catch(e){this.logger.error("Failed to add player event listener",{error:e,listener:i,options:r,type:t})}}autoplay(e){this.videoAutoPlay=e}changeLicense(e){this.unlicensed=!e,this.deepUpdate()}checkAddRemoteDebugger(){window.location.search.includes("vrb=1")&&(this.logger.debug("Adding remote debugger"),((e,t,r,s,a={})=>{if(!e.getElementById(t)){let i=e.createElement(s);i.id=t,"script"===s?i.src=r:i.href=r,Object.entries(a).forEach(([e,t])=>{i.setAttribute(e,t)}),e.head.appendChild(i)}})(this.doc,"remote-debugger-script","https://remote-debugger.internal.vturb.com/target.js","script"))}connectedCallback(){super.connectedCallback(),this.addEventListener(a.Play,()=>{this.played=!0,this.paused=!1,this.alreadyPlayed=!0,this.requestUpdate()}),this.addEventListener(a.Pause,()=>{this.played=!1,this.paused=!0,this.requestUpdate()}),this.addEventListener(a.Ended,()=>{this.requestUpdate()}),this.addEventListener(a.Loadedmetadata,()=>{var e,t;null!=(t=this.video)&&t.textTracks.length&&0<(t=Array.from(this.video.textTracks)).length&&null!=(e=this.config.subtitles)&&e.active&&this.setActiveTrack(t[0])}),this.checkAddRemoteDebugger(),this.observeVideoReady()}deepUpdate(){this.modules.forEach(e=>{e.requestUpdate()})}firstUpdated(e){let t=Object.create(null,{firstUpdated:{get:()=>super.firstUpdated}});return ap(this,void 0,void 0,function*(){t.firstUpdated.call(this,e),this.video&&(this.video.disableRemotePlayback=!0),yield this.updateComplete,this.logger.info("firstUpdated")})}observeVideoReady(){let e=[a.Canplay,a.Canplaythrough,s.VideoReady,a.Play],r=()=>{e.forEach(e=>{this.removeEventListener(e,t)})},t=e=>{var t=this.controllers.blockers.anyBlocker("smartAutoPlay"),i=this.played;t&&e.type!==s.VideoReady.eventName&&!i?this.logger.debug("videoReady blocked",e.type):(this.logger.info("videoReady"),this.dispatchEvent(new a.Ready),r())};e.forEach(e=>{this.addEventListener(e,t)})}registerModule(e){this.modules.push(e)}render(){if(this.destroyed)return p``;var e=((null==(e=this.video)?void 0:e.getBoundingClientRect())||{width:0}).width;let t=this.config;this.classList.toggle("fluid",!!this.interface.fluid);var i={"already-played":this.controllers.blockers.anyBlocker("played"),fluid:this.interface.fluid,"has-fakebar":null==(i=t.fakeBar)?void 0:i.active,"has-rewind-forward":(null==(i=t.style)?void 0:i.rewind)&&(null==(i=t.style)?void 0:i.forward),"has-smallplay":t.style.smallPlay,"in-pause":this.paused,"in-play":this.played,"is-chrome":F(),"is-desktop":!d(),"is-firefox":/firefox/i.test(window.navigator.userAgent),"is-mobile":d(),"is-safari":nr(),"m-w-360":e<=360,"m-w-480":360${JSON.stringify(t,null,2)} ${Ya(!this.isIframe,()=>p``)}
{d()||this.controllers.bar.show()}} @mouseleave=${()=>{d()||this.controllers.bar.hide()}} @dblclick="${()=>{this.config.style.fullscreen&&!d()&&this.dispatchEvent(new n.Toggle)}}" @touchend="${e=>{this.config.style.fullscreen&&(e.timeStamp-(this.lastTouchEnd||0)<300?(e.preventDefault(),e.stopPropagation(),this.dispatchEvent(new n.Toggle),this.lastTouchEnd=0):this.lastTouchEnd=e.timeStamp)}}" @click="${this.onPlayerClick}" > this.unlicensed=!0} >
${Ya(!this.unlicensed,()=>p` {this.video=e.target.video,this.ready=!0,this.trackHlsChanges(e.detail.hls,e.detail.video)}} @first-segment-loaded=${e=>{this.controllers.kpis.trackTTFF()}} poster=${t.smartAutoPlay.active||this.played||this.controllers.blockers.anyBlocker("resume")?null:t.video.picStart||t.video.cover} disablePictureInPicture="true" controlsList="nodownload noplaybackrate nofullscreen noremoteplayback" style="-webkit-media-controls-timeline-container: none; -webkit-media-controls-timeline: none;" .muted=${this.videoAutoPlay||this.muted} .autoplay=${this.videoAutoPlay} /> `)}
${Ya(this.ready&&!this.unlicensed,()=>{var e;return p`
${Ya(t.style.bigPlay||t.style.temporaryBigPlay&&this.controllers.blockers.noneBlocker("played"),()=>p``)}
${Ya(null==(e=t.subtitles)?void 0:e.active,()=>p``)}
${Ya(t.resume.active,()=>p``)} ${Ya(t.fakeBar.active,()=>p``)} ${Ya(t.minihooks.active,()=>p``)} ${Ya(w.shouldLoad(t.smartAutoPlay),()=>p``)} ${Ya(t.thumbsniper.active||t.video.picFinish,()=>p``)} ${Ya(t.pixels.active,()=>p``)} ${Ya(m.shouldLoad(t,["inner_button"]),()=>p``)} ${Ya(Ht.shouldLoad(t,"inside_video"),()=>p``)}
`})}
${Ya(m.shouldLoad(t,["below_button","custom_html"]),()=>p``)} ${Ya(Ht.shouldLoad(t,"outside_video"),()=>p``)} `}setActiveTrack(e){var t;null!=(t=this.video)&&t.textTracks&&(Array.from(this.video.textTracks).forEach(e=>{e.mode="hidden"}),this.currentTrack=e,this.dispatchEvent(new te.TrackChange({track:e})))}setup(e){this.interface.setup(e)}togglePlay(){this.logger.group("debug","togglePlay").message("paused",this.paused).message("smallPlay",this.config.style.smallPlay).message("bigPlay",this.config.style.bigPlay).message("disablePause",this.config.playback.disablePause).end(),!this.paused&&this.config.playback.disablePause||(this.paused||this.config.style.smallPlay||this.config.style.bigPlay)&&(this.controls.toggle(),this.controllers.bar.show())}trackHlsChanges(e,t){if(e){let s=e.currentLevel;e.on(X.LEVEL_SWITCHING,(e,t)=>{this.logger.debug("level switching",{data:t,event:e})}),e.on(X.LEVEL_SWITCHED,(e,t)=>{this.logger.debug("level switched",{data:t,event:e,from:s,to:t.level})});let a=(e,t,i)=>{this.dispatchEvent(new l.Event({type:"custom-hls_level_switched",body:{from:e,segment:i,to:t}}))};e.on(X.FRAG_LOADED,(e,t)=>{this.controllers.kpis.trackVideoSegmentLoaded({bytes:t.frag.stats.loaded,request:{end:t.frag.stats.loading.end,start:t.frag.stats.loading.start}});try{var{level:i,sn:r}=t.frag;i!==s&&"initSegment"!==r&&(a(s,i,r),this.logger.debug("Frag loaded in different level",{currentLevel:s,nextLevel:i,segmentNumber:r}),s=i)}catch(e){this.logger.error("error dispatching hls_level_switched",{e:e})}})}}videoAsync(){return ap(this,void 0,void 0,function*(){return new Promise((i,r)=>{if(this.video)i(this.video);else{let e=0,t=setInterval(()=>{e++,this.video&&(clearInterval(t),i(this.video)),20{var i,r=Object.assign({},e);for(i in t)"!DELETE!"===t[i]||null===t[i]?delete r[i]:"object"!=typeof t[i]||Array.isArray(t[i])?r[i]=t[i]:r[i]=Pa(r[i]||{},t[i]);return r}),Ca={immersiveMode:{active:!0,desktop:!1,disableScrolling:!1,expandOnPlay:!1,minimizeOnPause:!1,mobile:!1},callActions:{active:!1,version:1,items:[]},conversion:[],fakeBar:{active:!1,alpha:2,color:"",height:10},headlines:{active:!1,items:[]},language:"en",minihooks:{active:!1,items:[]},pixels:{active:!1,items:[]},playback:Object.assign(Object.assign({},{smartPause:!1}),{active:!1,disablePause:!1}),resume:{active:!1,backgroundColor:"",foregroundColor:"",model:"default",play:null,replay:null,title:null},secure:!1,smartAutoPlay:{active:!1,backgroundProbe:{enabled:!0,maxAttempts:10,mobileTriggerEvents:["click","touchend","pointerup"],probeInterval:1e3,probeTimeout:2e3,triggerEvents:["click","keydown","mousedown","pointerdown","pointerup"]},items:[]},style:{background:"#000",bigPlay:!1,captions:!1,foreground:"#fff",borderRadius:0,forward:!1,fullscreen:!1,progressBar:!1,rewind:!1,smallPlay:!0,speed:!1,videoTime:!1,volume:!1},subtitles:{active:!1,items:[],show:!1},thumbsniper:{active:!1,items:[]},turbo:{active:!1,speed:1,type:"single"}},xa=Ba(7314);var np=Ba.n(xa);function op(e){let t,i=np()(Ca,Pa(Ca,e),{customMerge:e=>{if("triggerEvents"===e||"mobileTriggerEvents"===e)return(e,t)=>t}});e="undefined"!=typeof navigator&&(navigator.language||navigator.userLanguage)||"en";var r,e=/^pt(-\w{,2})?/i.test(e)?"pt":/^es(-\w{,2})?/i.test(e)?"es":"en";return r=e,Kt=r,i.language=e,i.fakeBar&&lp(i,"fakeBar.color",i.style.background),i.resume&&(i.resume.play=i.resume.play||v("resume.play"),i.resume.replay=i.resume.replay||v("resume.replay"),i.resume.title=i.resume.title||v("resume.title"),lp(i,"resume.backgroundColor","rgba(0,0,175,0.5)"),dp(i,"resume.foregroundColor","white")),i.smartAutoPlay.items.forEach(e=>{"default"===e.type&&(lp(i,"smartAutoPlay.backgroundColor","rgba(0,0,175,0.5)"),dp(i,"smartAutoPlay.foregroundColor","white")),e.autoUnmute=null==(e=e.autoUnmute)||e}),i.smartAutoPlay.items.length&&i.smartAutoPlay.active||(i.style.temporaryBigPlay=!0),null!=(t=i.video)&&t.picStart&&(i.style.temporaryBigPlay=!1),i}function lp(e,t,i){hp(e,t,"background",i)}function hp(e,t,i,r){var s,t=t.split("."),a=t.pop();a&&(t=t.reduce((e,t)=>e&&"object"==typeof e&&t in e?e[t]:null,e))&&(s=e.style[i]===(null==(s=null==Ca?void 0:Ca.style)?void 0:s[i])?null:e.style[i],t[a]=t[a]||s||r)}function dp(e,t,i){hp(e,t,"foreground",i)}let Da=e=>""!==e.canPlayType("application/vnd.apple.mpegURL");class Fv extends fn{constructor(e){super(Fv.eventName,{detail:e})}}Fv.eventName="hls-error";class Nv extends fn{constructor(e){super(Nv.eventName,{detail:e})}}Nv.eventName="first-segment-loaded";class Uv extends fn{constructor(){super(Uv.eventName)}}Uv.eventName="level-switched";class $v extends fn{constructor(){super($v.eventName)}}$v.eventName="levels-loaded";class Bv extends fn{constructor(e){super(Bv.eventName,{detail:e})}}Bv.eventName="mount";let Oa={Error:Fv,FirstSegmentLoaded:Nv,LevelsLoaded:$v,LevelSwitched:Uv,Mount:Bv};var Pd=e`:host{--style-font-family:"Arial",sans-serif;display:block;height:100%;width:100%}video{background-color:#000;height:100%;left:0;object-position:center;pointer-events:none;position:absolute;top:0;width:100%;z-index:9999}video::cue{visibility:hidden}`,Wa=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var e;this.player.controllers.blockers.noneBlocker("played")&&null!=(e=this.player.config.video)&&e.picStart&&this.player.controls.play()},this.onBeforeUnload=()=>{this.logger.trace("beforeunload");let e=0,t=setInterval(()=>{this.player.played&&this.video.paused&&(this.player.controls.play(),clearInterval(t)),200<=++e&&clearInterval(t)},50)},this.onSmartAutoPlayActive=()=>{this.customPreview&&this.switchVideoSource(this.mountManifest(this.customPreview),this.customPreviewPosition)},this.onSmartAutoPlayInactive=()=>{this.customPreview=void 0},this.onOffline=()=>{var e;this.logger.debug("HLS offline"),null!=(e=this.hls)&&e.stopLoad(),this.player.dispatchEvent(new o.Offline)},this.onOnline=()=>{this.logger.debug("HLS online"),this.recoverPlayback(),this.player.dispatchEvent(new o.Online)},this.onInitializedMediaSession=()=>{this.player.dispatchEvent(new ce.ChangeArtwork({artwork:this.settings.picStart||this.poster||this.settings.poster||""}))}}get currentQualityLevel(){return this._currentLevel}get firstSegmentLoaded(){return this._firstSegmentLoaded}get isUsingHls(){var e=nr()&&d()&&Da(this.video);return wn.isSupported()&&!e}get isSecureEnabled(){return this.player.config.secure&&this.isUsingHls}get m3u8(){return this.mountManifest(this.settings)}mountManifest(e){var t=this.isSecureEnabled?"m3u8.vturb.net":this.player.config.cdn||"cdn.converteai.net",i=(null==e?void 0:e.oid)||this.player.config.oid,r=null==e?void 0:e.id,e=(null==e?void 0:e.hlsFile)||"main.m3u8";return`https://${t}${this.token}/${i}/${r}/`+e}get qualityLevels(){return this._levels}get token(){if(!this.isSecureEnabled)return"";let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-+=.@$!*";return"/t-"+Array.from({length:32},()=>e[Math.floor(Math.random()*e.length)]).join("")+(this.player.config.fkdlvid||"")}addEventListener(e,t,i){e="string"==typeof e?e:e.toString();Ma.includes(e)?super.addEventListener(e,t,i):this.video.addEventListener(e,t,i)}connectedCallback(){let e=Object.create(null,{connectedCallback:{get:()=>super.connectedCallback}});return cp(this,void 0,void 0,function*(){e.connectedCallback.call(this),yield this.updateComplete,yield this.setupHls(),window.addEventListener("offline",this.onOffline),window.addEventListener("online",this.onOnline),window.addEventListener("beforeunload",this.onBeforeUnload),this.player.addEventListener(a.Play,this.onInitializedMediaSession),this.player.addEventListener(s.Active,this.onSmartAutoPlayActive,{once:!0,passive:!0}),this.player.addEventListener(s.Inactive,this.onSmartAutoPlayInactive,{once:!0,passive:!0})})}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("offline",this.onOffline),window.removeEventListener("online",this.onOnline),window.removeEventListener("beforeunload",this.onBeforeUnload),this.player.removeEventListener(s.Active,this.onSmartAutoPlayActive),this.player.removeEventListener(s.Inactive,this.onSmartAutoPlayInactive),this.player.removeEventListener(a.Play,this.onInitializedMediaSession),this._savedCues.clear(),this.hls&&(this.hls.destroy(),this.hls=null),this._firstSegmentLoaded=!1}willUpdate(e){e.has("customPreview")&&(this.player.controllers.blockers.anyBlocker("smartAutoPlay")&&this.customPreview?this.switchVideoSource(this.mountManifest(this.customPreview),this.customPreviewPosition):this.customPreview||this.switchVideoSource(this.m3u8,0))}removeEventListener(e,t,i){e="string"==typeof e?e:e.toString();e===Oa.Mount.eventName||e===Oa.FirstSegmentLoaded.eventName?super.removeEventListener(e,t,i):this.video.removeEventListener(e,t,i)}render(){var e=(null==(t=this.player.config.video)?void 0:t.picStart)&&!(null!=(e=null==(t=this.player.classList)?void 0:t.contains)&&e.call(t,"in-fullscreen")||this.player.interface.fluid)&&this.player.controllers.blockers.noneBlocker("played"),t=g({"-webkit-media-controls-timeline":"none","-webkit-media-controls-timeline-container":"none",cursor:e?"pointer":"default",objectFit:e?"cover":this.objectFit,pointerEvents:e?"auto":"none"});return p``}setQuality(e,t=!1){this.hls&&-1<=e&&ethis.logger.trace(e,t),error:(e,...t)=>this.logger.error(e,t),warn:(e,...t)=>this.logger.warn(e,t),info:(e,...t)=>this.logger.info(e,t),debug:(e,...t)=>this.logger.debug(e,t),trace:(e,...t)=>this.logger.trace(e,t)},autoStartLoad:!0,enableWorker:!0,maxBufferLength:32,maxBufferSize:1e7,maxMaxBufferLength:32,preferManagedMediaSource:!0,startLevel:0,xhrSetup:e=>{e.withCredentials=!1}}),this.isUsingHls?(this.hls.on(wn.Events.MEDIA_ATTACHED,()=>{var e;this.logger.group("debug","HLS attached to video element").message("Media id "+(null==(e=this.hls.media)?void 0:e.id)).end(),this.mount()}),this.hls.on(wn.Events.MANIFEST_PARSED,(e,t)=>{var i;this.logger.debug("Manifest loaded, found "+t.levels.length+" quality level"),this._levels=t.levels.map(e=>({bitrate:e.bitrate,height:e.height,width:e.width})),this.hls.startLevel=(i=(null==(t=this.settings)?void 0:t.startQuality)||"auto",t=this._levels,"low"===i||"auto"===i?0:t.findIndex(e=>e.height===Fa[i])),this.dispatchEvent(new CustomEvent("levels-loaded",{detail:{levels:this._levels}}))}),this.hls.on(wn.Events.LEVEL_SWITCHED,(e,t)=>{this._currentLevel=t.level,this.dispatchEvent(new CustomEvent("quality-change",{detail:{auto:this.hls.autoLevelEnabled,level:t.level}}))}),this.hls.on(wn.Events.FRAG_LOADED,()=>this.dispatchFirstSegmentLoaded(),{once:!0}),this.hls.on(wn.Events.ERROR,(e,t)=>{var i;if(t.fatal)switch(t.type){case wn.ErrorTypes.MEDIA_ERROR:this.logger.warn("Fatal media error encountered",t),this.recoverMediaError(t);break;case wn.ErrorTypes.NETWORK_ERROR:this.logger.warn("Fatal network error encountered",t),this.handleNetworkError(t);break;default:this.logger.error("Fatal error encountered",t),null!=(i=this.hls)&&i.destroy()}else t.details===wn.ErrorDetails.BUFFER_APPEND_ERROR&&this.video.readyState===HTMLMediaElement.HAVE_NOTHING&&0===this._mediaErrorRecoveryAttempt?(this.logger.warn("Buffer append error encountered, video is not ready",t),this.recoverMediaError(t)):this.logger.warn("Non-fatal error encountered",t);this.dispatchEvent(new Oa.Error({details:t.details,fatal:t.fatal,type:t.type}))}),this.hls.attachMedia(yield this.videoAsync),this.hls.loadSource(this.m3u8),this.logger.group("info","HLS attached to video element").message("video",this.video).end()):Da(this.video)?(this.mount(),this.video.src=this.m3u8,this.logger.debug("HLS Native is supported"),this.video.addEventListener("progress",()=>{this.dispatchFirstSegmentLoaded()},{once:!1}),this.video.addEventListener("canplay",()=>{this.dispatchFirstSegmentLoaded()},{once:!0})):this.logger.error("HLS is not supported")})}_onLoadedMetadata(){this.video&&0{e.mode="hidden"})}_onTrackLoad(e){e=e.target;e.track&&(e.track.mode="hidden")}dispatchFirstSegmentLoaded(){this._firstSegmentLoaded||(this._firstSegmentLoaded=!0,this.dispatchEvent(new Oa.FirstSegmentLoaded({hls:this.hls,timestamp:Date.now(),video:this.video})),this.logger.debug("First video segment loaded"))}recoverMediaError(e){this._mediaErrorRecoveryCounterResetTimeout&&clearTimeout(this._mediaErrorRecoveryCounterResetTimeout),this._mediaErrorRecoveryAttempt++,3{var e,t=this.video.currentTime;this.saveTextTrackCues(),null!=(e=this.hls)&&e.recoverMediaError(),this.restoreTextTrackCues(),null!=(e=this.hls)&&e.media&&(this.hls.media.currentTime=t),this._mediaErrorRecoveryCounterResetTimeout=setTimeout(()=>{this._mediaErrorRecoveryAttempt=0},5e3)},500)}saveTextTrackCues(){this._savedCues.clear(),Array.from(this.video.textTracks).forEach(e=>{var t;null!=(t=e.cues)&&t.length&&this._savedCues.set(e,Array.from(e.cues))})}restoreTextTrackCues(){this._savedCues.forEach((e,t)=>{e.forEach(e=>{try{t.addCue(e)}catch(e){}})}),this._savedCues.clear()}recoverPlayback(){var e,t;this.isUsingHls&&this.hls?this.hls.startLoad(this.video.currentTime):this.video&&(e=this.video.currentTime,t=!this.video.paused,this.video.src=this.m3u8,this.video.currentTime=e,t)&&this.video.play()}handleNetworkError(e){this.logger.warn("Attempting to recover from network error in 500ms"),setTimeout(()=>this.recoverPlayback(),500)}switchVideoSource(e,t=0){this.video.currentTime=t,this.isUsingHls&&this.hls?(this.hls.config.startPosition=t,this.hls.loadSource(e),this.hls.startLoad()):(this.video.src=e,this.video.load())}mount(){this.dispatchEvent(new Oa.Mount({hls:this.hls,video:this.video}))}}),Na=(R.componentName="HlsVideo",R.shadowRootOptions={mode:qn("closed")},R.styles=[Pd],Wa([ja()],R.prototype,"autoplay",void 0),Wa([ja()],R.prototype,"controls",void 0),Wa([ja()],R.prototype,"muted",void 0),Wa([ja()],R.prototype,"objectFit",void 0),Wa([ja()],R.prototype,"poster",void 0),Wa([ja()],R.prototype,"preload",void 0),Wa([ja()],R.prototype,"settings",void 0),Wa([ja()],R.prototype,"subtitles",void 0),Wa([Ha("video")],R.prototype,"video",void 0),Wa([Xn("video")],R.prototype,"videoAsync",void 0),Wa([ja({type:Number})],R.prototype,"customPreviewPosition",void 0),Wa([ja({type:Object})],R.prototype,"customPreview",void 0),R=Wa([Ka("hls-video")],R),function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3{var t=Number(this.input.value);this.value=t>this.max?this.max:t
`}updated(e){e.has("value")&&this.updateSlider()}updateSlider(){var e,t=this.min,i=this.max,i=(this.value-t)/(i-t),t=this.thumb.offsetWidth;this.vertical?(e=(this.slider.offsetHeight-t)*(1-i)+"px",this.style.setProperty("--slider-value-width",100*i+"%"),this.style.setProperty("--thumb-offset",e)):(e=(this.slider.offsetWidth-t)*i+"px",this.style.setProperty("--slider-value-width",100*i+"%"),this.style.setProperty("--thumb-offset",e)),this.dispatchEvent(new Event("change"))}},Ua=(I.styles=e` :host { --slider-background: #767676; --slider-height: var(--volume-slider-height, 0.125em); /* 2px */ --slider-radius: var(--slider-height); --slider-value-color: #ff6200; --slider-value-width: 0; --slider-value-height: 0; --thumb-color: #adadad; --thumb-diameter: 0.9375em; /* 15px */ --thumb-offset: 0; display: inline-block; } .range-container { position: relative; width: 100%; height: 100%; display: flex; justify-content: flex-start; align-items: center; } .range-slider, .range-slider-value { border-radius: var(--slider-radius); position: absolute; } .range-slider { background: var(--slider-background); width: 100%; height: var(--slider-height); } .range-slider-value { background: var(--slider-value-color); width: var(--slider-value-width); height: var(--slider-height); } :host([vertical]) .range-container { height: 100%; flex-direction: column; } :host([vertical]) .range-slider { width: var(--slider-height); height: 100%; } :host([vertical]) .range-slider-value { width: var(--slider-height); height: var(--slider-value-width); bottom: 0; } :host([vertical]) input { writing-mode: vertical-rl; direction: rtl; width: 100%; vertical-align: bottom; } .range-thumb { background: var(--thumb-color); border-radius: 50%; height: var(--thumb-diameter); position: absolute; width: var(--thumb-diameter); transform: translateX(var(--thumb-offset)); } :host([vertical]) .range-thumb { transform: translateY(var(--thumb-offset)); } input { display: inline-block; height: 100%; width: 100%; margin: 0; opacity: 0; position: relative; cursor: pointer; } :host([disabled]) { --slider-background: #d9d9d9; --slider-value-color: #a8a8a8; --thumb-color: #f0f0f0; } `,Na([ja({reflect:!0,type:Boolean})],I.prototype,"disabled",void 0),Na([ja({type:Number})],I.prototype,"max",void 0),Na([ja({type:Number})],I.prototype,"min",void 0),Na([ja({type:Number})],I.prototype,"step",void 0),Na([ja({type:Number})],I.prototype,"value",void 0),Na([ja({reflect:!0,type:Boolean})],I.prototype,"vertical",void 0),Na([Ha("input")],I.prototype,"input",void 0),Na([Ha(".range-slider")],I.prototype,"slider",void 0),Na([Ha(".range-thumb")],I.prototype,"thumb",void 0),I=Na([Ka("range-slider")],I),"vturb-player-intersection-element");class Vv{get position(){return this._position}constructor(e){this.element=e,this._position=1/0,this.disconnect=()=>this.observer.disconnect(),this.observe=()=>{var e;this.element.setAttribute(Ua,""),this._position=this.calculateDomPosition();for(e of this.findPlayers())this.observer.observe(e)},this.calculateDomPosition=()=>{if(!this.isVisibleElement(this.element))return 1/0;let e=0;var t;for(t of this.findPlayers()){if(t===this.element)break;this.isVisibleElement(t)&&this.element.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING&&e++}return e},this.findPlayers=()=>document.querySelectorAll(`[${Ua}]`),this.isVisibleElement=e=>null!==e.offsetParent&&0{this._position=this.calculateDomPosition()},this.observer=new IntersectionObserver(this.onIntersectionChange)}}var up,pp,un,fp,gp,mp,vp,yp,bp,Ep,za=e`vturb-headline{display:var(--headlines-display,var(--elements-display,block));height:var(--headlines-height,var(--elements-height));opacity:var(--headlines-opacity,var(--elements-opacity,1))}vturb-bigplay,vturb-call-action,vturb-call-action-v2,vturb-controls,vturb-minihook,vturb-smartautoplay,vturb-thumbsniper{height:var(--elements-height);opacity:var(--elements-opacity,1)}:host{display:block;font-size:16px;height:auto;outline:none;z-index:1}:host,div[id^=vturb-callaction-container-]{--player-vertical-width:400px;--base-transition-duration:0.3s;--base-transition-delay:0s;--base-transition-cubic:cubic-bezier(0.25,0.1,0.25,1);--base-transition:var(--base-transition-duration) var(--base-transition-cubic) var(--base-transition-delay);--base-linear-transition:0.2s linear}:host .m-w-360,div[id^=vturb-callaction-container-] .m-w-360{font-size:10px}:host .m-w-480,div[id^=vturb-callaction-container-] .m-w-480{font-size:11px}:host .m-w-550,div[id^=vturb-callaction-container-] .m-w-550{font-size:12px}:host .m-w-768,div[id^=vturb-callaction-container-] .m-w-768{font-size:13px}:host .m-w-1024,div[id^=vturb-callaction-container-] .m-w-1024{font-size:14px}:host .m-w-1280,div[id^=vturb-callaction-container-] .m-w-1280{font-size:16px}:host .m-w-1440,div[id^=vturb-callaction-container-] .m-w-1440{font-size:16.5px}:host .m-w-1600,div[id^=vturb-callaction-container-] .m-w-1600{font-size:17px}:host .m-w-1920,div[id^=vturb-callaction-container-] .m-w-1920{font-size:18px}:host,div[id^=vturb-callaction-container-]{--style-background:#000;--style-foreground:#fff;--style-font-family:Roboto,Helvetica,Arial,Tahoma,sans-serif;--style-background-opacity:rgba(0,0,0,.7);--style-hover-background:hsla(0,0%,100%,.1);--style-dark-hover-background:rgba(0,0,0,.85);--fakebar-height:0;--control-index:5;--control-padding:0.625em;--control-font-size:1.5em;--control-height:6.125em;--control-translate-y:100%;--control-gap-vertical:0.875em;--control-gap-horizontal:0.625em;--control-border-radius:0.3em;--control-button-size:1.5em;--control-mobile-button-padding:1em;--control-mobile-button-featured-padding:1.5em;--control-mobile-button-icon-size:2em;--control-mobile-button-featured-icon-size:3em;--progressbar-background-color:hsla(0,0%,100%,.2);--progressbar-buffer-color:hsla(0,0%,100%,.4);--progressbar-handle-color:var(--style-foreground,#fff);--progressbar-height:0.25em;--progressbar-handle-size:0.75em;--headline-font-family:inherit;--headline-margin-bottom:1.875em;--resume-background-color:var(--style-background);--resume-blur:0.3125em;--resume-font-size:1em;--resume-foreground-color:var(--style-foreground);--resume-index:10;--resume-line-height:1.3;--resume-min-width:180px;--thumbsniper-background-color:var(--style-background);--thumbsniper-image-fit:contain;--thumbsniper-index:100;--thumbsniper-button-margin:1.25em;--callaction-background-color:var(--style-background);--callaction-index:100;--callaction-button-margin:1.25em;--volume-slider-width:3.75em;--volume-slider-height:0.25em;--volume-slider-diameter:0.9375em;--player-border-radius:none;--player-box-shadow:none;font-family:var(--style-font-family,sans-serif);--anchor-button-base-font-size:18px;--anchor-button-background-color:var(--style-background);--anchor-button-background-color-hover:var(--style-background-hover);--anchor-button-zindex:100;--anchor-button-border-radius:5px;--anchor-button-color:var(--style-foreground);--anchor-button-color-hover:var(--style-foreground-hover);--anchor-button-font-size:1em;--anchor-button-line-height:1.2;--anchor-button-font-weight:700;--anchor-button-size-lg:1.5em;--anchor-button-size-md:1.25em;--anchor-button-size-sm:1em;--anchor-button-display:inline-block;--anchor-button-padding:1.25em;--anchor-button-font-size-lg:calc(var(--anchor-button-size-lg)*1);--anchor-button-padding-lg:calc(var(--anchor-button-size-lg)*0.5) calc(var(--anchor-button-size-lg)*0.66667)}:host .m-w-550,:host .m-w-768,div[id^=vturb-callaction-container-] .m-w-550,div[id^=vturb-callaction-container-] .m-w-768{--anchor-button-font-size-lg:calc(var(--anchor-button-size-lg)*0.83333);--anchor-button-padding-lg:calc(var(--anchor-button-size-lg)*0.33333) calc(var(--anchor-button-size-lg)*0.5)}:host .m-w-360,:host .m-w-480,div[id^=vturb-callaction-container-] .m-w-360,div[id^=vturb-callaction-container-] .m-w-480{--anchor-button-font-size-lg:calc(var(--anchor-button-size-lg)*0.66667);--anchor-button-padding-lg:calc(var(--anchor-button-size-lg)*0.16667) calc(var(--anchor-button-size-lg)*0.33333)}:host,div[id^=vturb-callaction-container-]{--anchor-button-font-size-md:calc(var(--anchor-button-size-md)*1);--anchor-button-padding-md:calc(var(--anchor-button-size-md)*0.4) calc(var(--anchor-button-size-md)*0.6)}:host .m-w-550,:host .m-w-768,div[id^=vturb-callaction-container-] .m-w-550,div[id^=vturb-callaction-container-] .m-w-768{--anchor-button-font-size-md:calc(var(--anchor-button-size-md)*0.8);--anchor-button-padding-md:calc(var(--anchor-button-size-md)*0.3) calc(var(--anchor-button-size-md)*0.4)}:host .m-w-360,:host .m-w-480,div[id^=vturb-callaction-container-] .m-w-360,div[id^=vturb-callaction-container-] .m-w-480{--anchor-button-font-size-md:calc(var(--anchor-button-size-md)*0.7);--anchor-button-padding-md:calc(var(--anchor-button-size-md)*0.2) calc(var(--anchor-button-size-md)*0.3)}:host,div[id^=vturb-callaction-container-]{--anchor-button-font-size-sm:calc(var(--anchor-button-size-sm)*1);--anchor-button-padding-sm:calc(var(--anchor-button-size-sm)*0.25) calc(var(--anchor-button-size-sm)*0.5)}:host .m-w-550,:host .m-w-768,div[id^=vturb-callaction-container-] .m-w-550,div[id^=vturb-callaction-container-] .m-w-768{--anchor-button-font-size-sm:calc(var(--anchor-button-size-sm)*0.875);--anchor-button-padding-sm:calc(var(--anchor-button-size-sm)*0.25) calc(var(--anchor-button-size-sm)*0.375)}:host .m-w-360,:host .m-w-480,div[id^=vturb-callaction-container-] .m-w-360,div[id^=vturb-callaction-container-] .m-w-480{--anchor-button-font-size-sm:calc(var(--anchor-button-size-sm)*0.75);--anchor-button-padding-sm:calc(var(--anchor-button-size-sm)*0.125) calc(var(--anchor-button-size-sm)*0.25)}:host,div[id^=vturb-callaction-container-]{--bezel-display:initial;--bezel-color:#fff;--bezel-animation-duration:0.5s;--bezel-animation-timing:linear;--bezel-scale-start:1;--bezel-scale-end:2;--bezel-opacity-start:1;--bezel-opacity-end:0;--bezel-icon-size:5em;--bezel-icon-padding:1.25em;--bezel-background-color:rgba(0,0,0,.5);--bezel-border-radius:50%;--bezel-icon-fill:#fff;--bezel-loading-min-width:100px;--bezel-loading-width:45%;--bezel-loading-max-width:200px;--bigplay-base-size:10em;--bigplay-border-radius:5em;--bigplay-background:transparent;--bigplay-opacity:0.9;--bigplay-padding-y:1.6em;--bigplay-padding-x:0.8em;--bigplay-size-360:6.5em;--bigplay-size-480:5.75em;--bigplay-size-550:7.5em;--subtitle-max-width:75%;--subtitle-max-width-small:85%;--subtitle-text-shadow:0.5px 0.5px 0.5px rgba(0,0,0,.8);--subtitle-padding:0.25em 0.4em;--subtitle-line-height:1.675;--subtitle-font-weight:500;--subtitle-letter-spacing:0.03em}.no-pointer,.no-pointer *{pointer-events:none}.pointer,.pointer *{pointer-events:auto}vturb-headline{font-family:var(--headline-font-family,inherit)}vturb-player{display:block;height:auto;outline:none}`,Va=function(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;0<=o;o--)(s=e[o])&&(n=(a<3?s(n):3Tp(this,void 0,void 0,function*(){if("function"!=typeof e)return pn(this,pp,"f").warn("injectUrlUpdater: updater is not a function");yield pn(this,up,"m",mp).call(this),pn(this,un,"f").dispatchEvent(new t.RegisterUrlUpdater({priority:Sn.MEDIUM,updater:e}))}),this.setup=s=>Tp(this,void 0,void 0,function*(){var e,t,i=pn(this,pp,"f").group("info","Player: group setup").message("config",s).message("current config",Object.assign({},this.config)).message("default config",Object.assign({},Ca));try{if(this.config=op(Pa(Pa(Ca,this.config),s)),this.customConfig)try{var r=JSON.parse(this.customConfig);this.config=Pa(this.config,r)}catch(e){pn(this,pp,"f").error("Failed to parse customConfig JSON",e)}i.message("result config",Object.assign({},this.config)).end(),pn(this,vp,"f").call(this),this.requestUpdate(),null!=(e=pn(this,un,"f"))&&e.deepUpdate(),pn(this,pp,"f").debug("config updated",o.ConfigUpdated.eventName),this.dispatchEvent(new o.ConfigUpdated({config:this.config})),null!=(t=pn(this,un,"f"))&&t.dispatchEvent(new o.ConfigUpdated({config:this.config,player:pn(this,un,"f")}))}catch(e){pn(this,pp,"f").error("Failed to setup player",e)}}),this.urlUpdater=e=>Tp(this,void 0,void 0,function*(){return yield pn(this,up,"m",mp).call(this),pn(this,un,"f").urlUpdater(e)}),vp.set(this,()=>{this.config.video.widththis.hasPreloadSlot&&pn(this,up,"m",bp).call(this,x.Expired),Ep.MAX_PRELOAD_SLOT_TIME),"f");this._setup&&this.setup(this._setup)}disconnectedCallback(){window.removeEventListener("resize",pn(this,vp,"f")),clearTimeout(pn(this,fp,"f")),pn(this,gp,"f").disconnect()}displayHiddenElements(e,r,s={}){var t=()=>{var e,t,i;t=this.doc,i=s.display,r.forEach(e=>{t.querySelectorAll(e).forEach(e=>e.style.setProperty("display",null!=i?i:"block","important"))}),s.persist&&pn(this,un,"f").store.set("displayHiddenElements-"+this.config.id,!0),null!=(e=s.callback)&&e.call(this)};pn(this,un,"f").store.get("displayHiddenElements-"+this.config.id,!1)?t():this.onTime(e,t,{once:!0})}fullscreen(e){var t;"on"===e?null!=(t=pn(this,un,"f"))&&t.dispatchEvent(new n.Expand):"off"===e?null!=(t=pn(this,un,"f"))&&t.dispatchEvent(new n.Minimize):null!=(e=pn(this,un,"f"))&&e.dispatchEvent(new n.Toggle)}mute(){pn(this,un,"f")&&pn(this,un,"f").controls.mute()}onTime(e,t){return Tp(this,arguments,void 0,function*(t,i,r={}){yield pn(this,up,"m",mp).call(this);let s=e=>{e.detail.time>=t&&(i.call(this),r.once)&&this.removeEventListener(a.Timeupdate,s)};this.addEventListener(a.Timeupdate,s)})}pause(){var e;null!=(e=pn(this,un,"f"))&&e.controls.pause()}play(){var e;return null==(e=pn(this,un,"f"))?void 0:e.controls.play()}reload(){return Tp(this,void 0,void 0,function*(){var e=this.config.oid;this.setup({oid:void 0}),yield this.updateComplete,wp(this,un,void 0,"f"),this.setup({oid:e})})}render(){var e;return null!=(e=this.config)&&e.oid?(e=this.hasPreloadSlot?"display: none;":"",p`${Ya(this.hasPreloadSlot,()=>p``)}`):p``}seek(e){return Tp(this,void 0,void 0,function*(){yield pn(this,up,"m",mp).call(this),pn(this,un,"f").controls.seek(e)})}setVolume(e){var t;if(e<0||100{this.addEventListener(o.Ready,e)})},yp=function(e){if(!pn(this,un,"f"))try{wp(this,un,e.target,"f");let i={config:this.config,player:this};[a.Ready,P.Denied].forEach(e=>{pn(this,un,"f").addEventListener(e,()=>{this.hasPreloadSlot&&pn(this,up,"m",bp).call(this,x.Removed)})}),pn(this,un,"f").addEventListener(o.Ready,()=>{this.dispatchEvent(new o.Ready(i)),null!=document&&document.dispatchEvent(new o.Ready(i))}),pn(this,un,"f").addEventListener(a.Timeupdate,e=>{this.dispatchEvent(new a.Timeupdate({time:e.detail.time}))}),[a.Play,a.Pause,a.Ended,n.Entered,n.Exited,C.TimeReached,r.CurrentActiveItems,s.Active,s.Inactive,s.VideoReady].forEach(t=>{pn(this,un,"f").addEventListener(t,e=>{this.dispatchEvent(new CustomEvent(t.toString(),{detail:i}))})})}catch(e){pn(this,pp,"f").error("Failed to add player event listeners",{error:e})}},bp=function(e){this.dispatchEvent(new e({config:this.config,player:this})),this.hasPreloadSlot=!1,"preload:expired"===e.eventName&&null!=(e=pn(this,un,"f"))&&e.dispatchEvent(new l.Event({type:"custom-preload_expired",body:{}}))},$a.MAX_PRELOAD_SLOT_TIME=2500,$a.shadowRootOptions={mode:qn()},$a.styles=[za,A.styles],Va([ja({type:Object})],$a.prototype,"config",void 0),Va([ja({attribute:"custom-config",reflect:!0,type:String})],$a.prototype,"customConfig",void 0),Va([ja({reflect:!0,type:Boolean})],$a.prototype,"fluid",void 0),Va([ja({reflect:!0,type:Boolean})],$a.prototype,"hasPreloadSlot",void 0),Va([ja({attribute:"original-id",reflect:!0,type:String})],$a.prototype,"originalId",void 0),Va([ja({reflect:!0,type:Boolean})],$a.prototype,"pauseOneTouch",void 0),$a=Ep=Va([Ka("vturb-smartplayer")],$a)}})();